캡트 및 그래들

!! …구글의 모든 공동으로 올해의 입출력 컨퍼런스에서 안드로이드 개발자들에게 외치는 것입니다. 이 응용 프로그램은 당신에게 아름다운 욕실 꾸미기의 갤러리를 보여줍니다. 코 틀린 버전 1.0 은 작년 2 월에 출시와 함께,그러나,여전히 아주 새로운 것입니다. 그리고 새로운 것과 마찬가지로 모든 것이 잘 작동하는 것은 아닙니다.

한동안 고통스러웠지만 점점 쉬워지기 시작한 한 가지는 주석 프로세서와 함께 코틀린을 사용하는 것이다. 그러나 많은 기능적 문제가 해결 되더라도 모든 조각이 어떻게 함께 진행되는지에 대한 많은 문서가 없으므로 살펴 보겠습니다.

우리는 당신이 이미 자바 주석 프로세서의 주제에 정통하다고 가정 할 것입니다. 이를 염두에두고,정말 몇 가지 차이점이 있습니다.

코 틀린 주석 처리 도구입니다,그것은 요즘 꽤 좋은 모양이다. 당신이 코 틀린에서 생성 된 코드를 참조 할 수 있도록하려면,당신은 캡트를 사용해야합니다. 그렇게 하려면 빌드에 플러그인을 포함시키기만 하면 됩니다.라인을 가진 그레이들 파일:

apply plugin: 'kotlin-kapt'

그리고 일반적으로 주석 프로세서 키워드를 사용하여 프로세서 종속성을 지정하는 대신 캡트 키워드를 사용하십시오.

그게 다야. 당신은 완료.

좋아,거의 끝났어. 다음,그리고 가장 흥미로운 질문은,당신은 어떻게 캡트로 컴파일 된 주석 프로세서를 디버깅합니까?

자바에서 온 경우 명령줄에서 자바를 실행한 다음 디버거를 연결하여 어노테이션 프로세서를 디버깅하는 데 익숙할 수 있습니다. 그러나 컴파일 할 때 사용하는 것이 아닙니다. 따라서 주석 프로세서를 디버깅하기위한 지침은 일반적인 방법으로 두 가지 방법으로 캡트를 위해 매우 약간 수정해야합니다:

  1. 이제 실행하려는 명령은 다음과 같습니다:
./gradlew :app:clean :app:compileDebugKotlin --no-daemon -Dorg.gradle.debug=true -Dkotlin.compiler.execution.strategy="in-process" -Dkotlin.daemon.jvm.options="-Xdebug,-Xrunjdwp:transport=dt_socket\,address=5005\,server=y\,suspend=n"

참고:이 스택 오버 플로우에 대한 주석 때문에 위의 명령이 원본 스토리에서 편집되었습니다. 새 명령을 사용하면 언제든지 디버거를 연결할 수 있습니다. 요약-이 새로운 명령을 사용하십시오.

2.디버거를 연결하기 전에 코 틀린 컴파일 작업이 시작될 때까지 기다려야합니다. 그래서 당신은 당신의 빌드를 모니터링하고 작업을 찾습니다:

:app:kaptDebugKotlin

그리고 당신이 그것을 볼 때,즉시 당신의 아이디로 향하게하고 원격 구성에서 디버그를 누르십시오. 내 경험에,당신은 시간에 첨부하지 않는 경우,작업은 이동합니다. 당신은 그것을 알아 내기 위해 몇 초를 가지고 있지만,모든 작업을 얻을 수있는 경주의 비트입니다.
편집:위의^는 더 이상 사실이 아닙니다! 새 그레이들 명령을 사용하면 언제든지 디버거를 연결할 수 있으며 프로세서 클래스에서 중단점을 적중해야 합니다. 야호! 단 한가지 주의해야 할 점은 디버거가 빌드의 다른 지점에서 멈추거나 디버깅을 다시 시작하거나 다시 연결하면 좋을 것입니다.

그래서 정말입니다. 이제 주석 프로세서를 빌드,실행 및 디버깅 할 수 있습니다. 행복한 코 틀린-보내고.

답글 남기기

이메일 주소는 공개되지 않습니다.