KaptとGradleを使った注釈処理

KOTLIN!! …Googleのすべてが今年のI/O会議でandroid開発者にまとめて叫んでいたものです。 そして、それは素晴らしいことです—Kotlinは、Androidアプリを書くことをはるかに簡単かつ迅速にする優れたIDEサポートを備えたフル機能の言語です。 しかし、Kotlinはまだ非常に新しいもので、昨年の2月にバージョン1.0がリリースされました。 そして、新しいものと同じように、すべてがうまくいくわけではありません。

しばらくの間苦痛だったが、より簡単になり始めていることの一つは、注釈プロセッサでKotlinを使用することです。 しかし、多くの機能的な問題が解決したとしても、すべての部分がどのように一緒に行くかについてのドキュメントはたくさんありませんので、それ

あなたはすでにJava注釈プロセッサの主題に精通していることを前提としています。 それを念頭に置いて、実際にはいくつかの違いしかありません。

KaptはKotlin注釈処理ツールであり、最近はかなり良い形になっています。 Kotlinから生成されたコードを参照できるようにするには、kaptを使用する必要があります。 これを行うには、ビルドにプラグインを含めるだけです。gradleファイルに次の行が含まれています:

apply plugin: 'kotlin-kapt'

また、通常はannotationProcessorキーワードを使用してプロセッサの依存関係を指定する場合は、代わりにkaptキーワードを使用します。

それだけです。 もう終わりだ

かなり

Ok、あなたはほとんど完了です。 次の、そして最も興味深い質問は、kaptでコンパイルされた注釈プロセッサをどのようにデバッグするのですか?

javaから来ている場合は、コマンドラインからjavacを実行し、デバッガをアタッチすることにより、注釈プロセッサのデバッグに精通している可能性があ しかし、kaptはjavacを使用してコンパイルしていません。kotlincを使用しています。 したがって、注釈プロセッサをデバッグするための命令は、通常の方法で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"

注:上記のコマンドは、このstackoverflowに関するコメントのために元のストーリーから編集されています。 新しいコマンドを使用すると、kaptステップが開始されるのを待って、それを”キャッチ”しようとするのではなく、いつでもデバッガをアタッチできます。 概要—この新しいコマンドを使用して、それは方法より良いです。

2.デバッガをアタッチする前に、Kotlinコンパイルタスクが開始されるのを待つ必要があります。 そのため、ビルドを監視してタスクを探したいとします:

:app:kaptDebugKotlin

そして、あなたがそれを見たら、すぐにあなたのIDEに向かい、あなたのリモート設定でdebugを押してください。 私の経験では、あなたが時間内に添付しなければ、タスクはちょうど上に移動します。 あなたはそれを把握するために数秒を持っていますが、それはすべての作業を取得するためのレースのビットです。
編集:上記の^はもはやそうではありません! 新しいgradleコマンドを使用すると、いつでもデバッガをアタッチでき、プロセッサクラスのブレークポイントにヒットするはずです。 イェーイ! 唯一の注意点は、デバッガがビルド内の他のポイントでハングすることがあり、デバッグを再起動または再接続するだけで、行ってもいいことです。

だからそれは本当にそれです。 これで、kaptを使用して注釈プロセッサを構築、実行、およびデバッグできます。 幸せなKotlin-ing。

コメントを残す

メールアドレスが公開されることはありません。