在我们的企业应用程序中,我们正在寻找一种从 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>
这位于具有多个子项目的主项目中。工厂和定制处理器位于这些子项目之一中。自定义注释分散在所有子项目中,这就是我将插件放在pom.xml
主项目中的原因。
问题是当我发出mvn apt:process
命令时,我收到关于没有处理器的注释的警告,我们的自定义注释就在其中。我认为这意味着插件找不到工厂类。
我应该怎么做才能让插件找到工厂和处理器文件?
编辑:
项目层次结构非常简单:
main_project
|-sub_project1
|...
|-sub_projectn
该插件pom.xml
位于main_project
. 假设工厂和处理器在sub_project1
,自定义注解在sub_project2
, sub_project3
, ...,sub_projectn