我刚接触注解处理,现在想用Maven自动化处理。我已经将以下内容放入我的pom.xml文件中:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<annotationProcessors>
<annotationProcessor>
co.aurasphere.revolver.annotation.processor.InjectAnnotationProcessor</annotationProcessor>
<annotationProcessor>
co.aurasphere.revolver.annotation.processor.RevolverContextAnnotationProcessor</annotationProcessor>
</annotationProcessors>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
问题在于当我尝试构建项目时,由于Maven找不到处理器,所以我遇到了CompilationFailureException。
我找到了类似的其他问题,通过将依赖项放在插件外部来解决。我尝试了那个方法,但对我来说没有任何改变。
我有什么遗漏吗?
谢谢。
编辑
这是我的另一个项目上的依赖项,其中包含处理器和注释:
<dependencies>
<dependency>
<groupId>co.aurasphere</groupId>
<artifactId>revolver-annotation-processor</artifactId>
<version>0.0.3-SNAPSHOT</version>
</dependency>
</dependencies>
编辑2:
经过进一步调查,我决定反编译使用Maven构建的处理器JAR文件,结果发现……我的类不在里面。由于某些原因,Maven没有将我的类编译到JAR文件中,这就是为什么找不到这些类的原因。我尝试找出构建过程中的错误(这在以前从未发生过,而且我已经使用Maven有一段时间了……)。
首先,该项目的打包格式为jar。 所有类都位于src/main/java下。 我已经检查了我的pom.xml文件,确保类路径和源路径相同。
这是处理器的pom文件:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>co.aurasphere</groupId>
<artifactId>revolver-annotation-processor</artifactId>
<version>0.0.3-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<!-- https://mvnrepository.com/artifact/javax.inject/javax.inject -->
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.velocity/velocity -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
</dependencies>
编辑3
这里是处理器项目执行“maven clean install”命令的输出结果。不幸的是,输出结果太长了,我只能发布外部链接,尽管我知道这样做并不好。
编辑4
由于该项目最初是作为 Eclipse 简单 Java 项目创建的,然后转换为 Maven 项目,因此我尝试创建一个新的 Maven 项目,并将所有内容移动到新项目中,希望问题出在 Eclipse 插件上误操作了,但错误仍然存在。
co.aurasphere.revolver...
包。它们不是在您尝试编译的项目内部,对吗? - ppeterka