我尝试编译包含生成源代码的注释的代码。我使用maven-compiler-plugin
和build-helper-maven-plugin
。我的POM看起来像这样:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<generatedSourcesDirectory>${project.build.directory}/generated-sources/apt</generatedSourcesDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${project.build.directory}/generated-sources/apt</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
当我运行mvn compile
时,${project.build.directory}/generated-sources/apt
被添加为源目录,生成的源将在正确的目录中生成。但由于缺少对生成的类的引用,我得到编译器错误。这就像生成的源目录不包含在编译过程中。
我也尝试apt-maven-plugin
,它不会生成任何内容。并且maven-annotation-plugin
但它的行为如上所述。
答案 0 :(得分:1)
发布2.0.7-SNAPSHOT的maven-annotation-plugin应该可以解决问题
答案 1 :(得分:1)
fwiw我刚刚从3.0降级到2.5.1并修复了一个问题,我看到APT处理在几次运行后没有被执行,使用maven所以只降级了一个版本:
答案 2 :(得分:0)
您可以尝试使用最新版本的maven编译器插件(2.3.2
)吗?
此外,build-helper-maven-plugin
不是必需的,因为看起来您正在使用maven-compiler-plugin
本身来从注释生成源。