在我们的企业应用程序中,我们正在寻求一种动态收集来自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
插件位于main_project
的pom.xml
中。假设工厂和处理器位于sub_project1
,自定义注解位于sub_project2
、sub_project3
、...、sub_projectn
中。