我正在尝试将使用注释处理器生成源的构建移动到Maven。我尝试过按以下方式配置maven编译器插件:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<fork>true</fork>
<compilerArgument>-s ${project.build.directory}/target/generated-sources/annotation-processing</compilerArgument>
</configuration>
</plugin>
</plugins>但是javac失败了
[INFO] Compilation failure
Failure executing javac, but could not parse the error:
javac: invalid flag: -s /home/robert/workspaces/betbrain/sportsengine.common/sportsengine.bean.test/target/target/generated-sources/annotation-processing
Usage: javac <options> <source files>
use -help for a list of possible options据我所知,-s应该在源文件之前传递给javac,但是maven随后会传递它。
如何正确地将-s标志传递给maven编译器插件?
更新:maven-注释插件似乎不起作用。
配置为
<plugin>
<groupId>org.bsc.maven</groupId>
<artifactId>maven-processor-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<executions>
<execution>
<id>process</id>
<goals>
<goal>process</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<outputDirectory>${generated.sources.directory}</outputDirectory>
<processors>
<processor>xxx.annotation.EnforceJavaBeansConventionsProcessor</processor>
</processors>
</configuration>
</execution>
</executions>
</plugin>执行失败
[INFO] [processor:process {execution: process}]
error: Annotation processor 'xxx.annotation.EnforceJavaBeansConventionsProcessor' not found
1 error发布于 2009-10-19 14:13:28
这个插件使用了硬编码的Windows类路径分隔符来构建类路径,所以它在我的Linux机器上失败了。
提交的补丁:
发布于 2010-01-23 18:58:32
不完全是你问题的答案,而是令人感兴趣的:
https://issues.apache.org/jira/browse/MCOMPILER-75
恐怕在Maven中使用JSR 269存在许多问题,至少在默认编译器插件中是这样的。
发布于 2009-10-19 11:36:28
我可能错过了什么,但你不应该:
target/generated-sources/annotation-processing阶段在generate-sources阶段生成源?apt-maven插件或maven-注释插件可以提供帮助。target/classes或maven-plugin中的<includes>将源编译为maven编译器插件时包括生成的源编辑: xxx.annotation.EnforceJavaBeansConventionsProcessor在哪里?您不需要将dependencies添加到用法页面中所记录的maven注释插件的配置中吗?
<plugin>
<groupId>org.bsc.maven</groupId>
<artifactId>maven-processor-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<executions>
<execution>
<id>process</id>
<goals>
<goal>process</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<outputDirectory>src/main/generated</outputDirectory><!-- PROCESSOR OUT DIR -->
<processors><!-- LIST OF PROCESSOR CLASS(S) -->
<processor>org.bsc.apt.BeanInfoAnnotationProcessor</processor>
</processors>
</configuration>
</execution>
</executions>
<dependencies/><!-- ADD DEPENDENCIES HERE IF REQUIRED -->
</plugin>PS:我不会使用src/main/generated作为输出目录,而是使用target/generated-sources的子目录。
https://stackoverflow.com/questions/1588038
复制相似问题