私たちのエンタープライズ アプリケーションでは、Java クラスからデータを動的に収集する方法を探しています。プロパティを持つカスタム アノテーション インターフェイス ( @interface)を作成しましたname。すべての注釈付きクラスからこのプロパティの値を収集したいと考えています。
カスタム アノテーションのAnnotationProcessorFactoryとを作成できました。AnnotationProcessorMaven 2 を使用しているためpom.xml、メイン プロジェクトのプラグインに以下を追加しました。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>apt-maven-plugin</artifactId>
<version>1.0-alpha-5</version>
<configuration>
<factory>our.company.api.component.lister.ComponentAnnotationProcessFactory</factory>
</configuration>
</plugin>
これは、いくつかのサブプロジェクトを持つメイン プロジェクトにあります。ファクトリとカスタム プロセッサは、これらのサブプロジェクトの 1 つにあります。カスタム注釈はすべてのサブプロジェクトに散在しているため、プラグインをpom.xmlメイン プロジェクトに配置しました。
問題は、mvn apt:processコマンドを発行すると、プロセッサのない注釈に関する警告が表示され、カスタム注釈がその中に含まれていることです。これは、プラグインがファクトリ クラスを見つけられないことを意味すると思います。
プラグインがファクトリ ファイルとプロセッサ ファイルを検出できるようにするにはどうすればよいですか?
編集:
プロジェクト階層は非常に単純です。
main_project
|-sub_project1
|...
|-sub_projectn
プラグインは の にpom.xmlありmain_projectます。ファクトリとプロセッサがsub_project1あり、カスタム アノテーションがsub_project2, sub_project3, ..., にあると仮定してください。sub_projectn