私たちのエンタープライズ アプリケーションでは、Java クラスからデータを動的に収集する方法を探しています。プロパティを持つカスタム アノテーション インターフェイス ( @interface
)を作成しましたname
。すべての注釈付きクラスからこのプロパティの値を収集したいと考えています。
カスタム アノテーションのAnnotationProcessorFactory
とを作成できました。AnnotationProcessor
Maven 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