Java 如何在Maven 2中使用自定义注释处理器?
在我们的企业应用程序中,我们正在寻找一种从Java类收集数据的动态方法。我们创建了一个带有Java 如何在Maven 2中使用自定义注释处理器?,java,maven-2,annotations,maven-plugin,annotation-processing,Java,Maven 2,Annotations,Maven Plugin,Annotation Processing,在我们的企业应用程序中,我们正在寻找一种从Java类收集数据的动态方法。我们创建了一个带有名称属性的自定义注释接口(@interface)。我们希望从所有带注释的类中收集此属性的值 我为自定义注释创建了一个AnnotationProcessorFactory和一个AnnotationProcessor。因为我们使用的是Maven 2,所以我在主项目的pom.xml插件中添加了以下内容 <plugin> <groupId>org.codehaus.moj
名称
属性的自定义注释接口(@interface
)。我们希望从所有带注释的类中收集此属性的值
我为自定义注释创建了一个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>
该插件位于main\u项目的pom.xml
中。假设工厂和处理器位于sub\u project1
中,自定义注释位于sub\u project2
,sub\u project3
,…,sub\u projectn
,需要检查两件事:
确保包含组件AnnotationProcessFactory
的主\u项目(或插件)
Apt Maven插件的
配置标签对我不起作用,但如果其完全限定名位于META-INF/services/com.sun.mirror.Apt.AnnotationProcessorFactory
文件中,则插件会找到工厂类。(见附件。)
更好的方法是使用(而不是Maven Apt插件),因为它不需要JDK的lib
文件夹中的com.sun
包和tools.jar
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<annotationProcessors>
<annotationProcessor>
com.example.annotationprocessor.Processor
</annotationProcessor>
</annotationProcessors>
</configuration>
</plugin>
</plugins>
</build>
在Java专家通讯中
您的项目层次结构是什么样的?
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<annotationProcessors>
<annotationProcessor>
com.example.annotationprocessor.Processor
</annotationProcessor>
</annotationProcessors>
</configuration>
</plugin>
</plugins>
</build>