2017-07-18 7 views
0

私はNetbeansとそのデフォルトのビルドベースの統合を使用してJavaプロジェクトを開発してきました。 antの不足のため、私はgradleベースのビルドに切り替える予定です。ローカルアノテーションプロセッサプロジェクトをgradleビルドに統合

  • 注釈モジュール(いくつかの注釈プロセッサを含む)
  • データベースモジュール
  • UIモジュール

問題は、プロジェクトは、3つの異なるモジュールに分離されていることですUIモジュールおよびデータベースモジュールは、注釈モジュールからの注釈プロセッサを使用する。 UIモジュールは、データベースモジュールに依存します。

if (!hasProperty('mainClass')) { 
    ext.mainClass = '' 
} 

apply plugin: "net.ltgt.apt" 

dependencies { 
    compile fileTree(dir: 'lib', include: ['*.jar']) 

    apt files('processor/Annotations.jar') 
    compileOnly files('processor/Annotations.jar') 
} 

は私が動的にモジュールを統合しようとしましたが、Gradleのビルドプロセスが注釈プロセッサによって生成されなければならないクラスを生成しませんでした:

私が試したビルドのセットアップは、次のようになります。さらに、私はannotations-moduleのプリコンパイルされたバージョンで試してみましたが、これはうまくいきませんでした。

私の質問:

  • のGradleは作品を構築するように、どのように私は注釈モジュールを統合していますか?
  • 注釈モジュールを動的にビルドプロセスに統合するにはどうすればよいですか?
+0

を使用したいですか?そうでない場合は、追加する必要があります。 – user1643723

答えて

0

通常は、ServiceLoaderによって発見のため、あなたのプロセッサは、サービスの宣言を持っていますかproject dependency

dependencies { 
    compile fileTree(dir: 'lib', include: ['*.jar']) 
    apt project(':annotations') 
    compileOnly project(':annotations') 
} 
+0

このソリューションは、注釈モジュールを動的に統合するために機能しますが、ビルドでは注釈付きクラスは作成されません。アノテーションモジュールに実装されている異なるプロセッサを指定して、グラデルビルドがそれらを認識できるようにするオプションがありますか? – Chris

+0

別のモジュールから 'annotations.jar'にアクセスする方法を知ったので、[net.ltgt.apt Plugin documentation](https://github.com/tbroyer/gradle- apt-plugin)を使用する –

関連する問題