在我们的企业应用程序中,我们正在寻找一种动态的方式从我们的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