在我們的企業應用程序中,我們正在尋找一種動態的方式從我們的Java類中收集數據。我們使用name
屬性創建了自定義註釋界面(@interface
)。我們希望從所有註釋類中收集此屬性的值。如何在Maven 2中使用自定義註釋處理器?
我設法爲自定義註釋創建了一個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>
這個駐留在主項目中有幾個子項目。工廠和定製處理器位於其中一個子項目中。自定義註釋分散在所有子項目中,這就是爲什麼我將插件放在主項目的pom.xml
中的原因。
問題是當我發出mvn apt:process
命令時,我收到了有關沒有處理器的註釋的警告,我們的自定義註釋就在其中。我認爲這意味着插件找不到工廠類。
我應該怎麼做插件可以找到工廠和處理器文件?
編輯:
項目層次結構非常簡單:
main_project
|-sub_project1
|...
|-sub_projectn
該插件是在main_project
的pom.xml
。只是假設,工廠和處理器是sub_project1
和自定義的註解是在sub_project2
,sub_project3
,...,sub_projectn
什麼是您的項目層次樣子Annotation Processing Tool? – Daniel 2012-07-26 11:20:57