我有一个从AbstractProcessor扩展的Java Annotation Processor。
我有两个支持的选项addResDir
和verbose
,我试图将它们设置为:
-AaddResDir=src/main/webapp -Averbose=true
我也试过这个:
-AaddResDir=src/main/webapp,verbose=true
虽然单个参数有效,例如
-AaddResDir=src/main/webapp
我无法使多个参数起作用,我找不到任何相关的文档。我是否需要在APT中手动解析参数?
我唯一拥有的是javac -help
的输出:
-Akey[=value] Options to pass to annotation processors
修改
毕竟,事实证明这是一个maven问题。这是我的maven配置:
<plugin>
<inherited>true</inherited>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<optimize>true</optimize>
<debug>true</debug>
<compilerArgument>-AaddResDir=src/main/webapp -Averbose=true</compilerArgument>
</configuration>
</plugin>
不幸的是,maven将参数作为args数组中的单个字符串发送给Javac,而它当然应该是两个字符串。地图版<compilerAguments>
也没有帮助,因为
<Averbose>true</Averbose>
<AaddResDir>src/main/webapp</AResDir>
生成输出:
[... , -Averbose, true, -AaddResDir, src/main/webapp]
虽然javac需要语法
[... , -Averbose=true, -AaddResDir=src/main/webapp ]
和
<Averbose=true />
<AaddResDir=src/main/webapp />
是无效的XML。
(请参阅Mapping Maps){/ 3>中的Guide to Configuring Maven Plugins
我担心没有办法改变这一点,唉。
修改
答案 0 :(得分:0)
目前还没有真正的答案。
该错误已归档:MCOMPILER-135
我已经提交了三个不同的补丁,the last of which引入了Properties类型的变量:
<additionalCompilerArguments>
<property> <name>-Akey=value</name> </property>
<property> <name>-verbose</name> </property>
<property> <name>-Xmaxerrs</name> <value>1000</value> </property>
</additionalCompilerArguments>
此解决方案是最灵活的解决方案,因为它支持许多不同的参数语法格式。
(如果现有参数<compilerArguments>
也属于属性,我的问题将得到解决)