在Eclipse Compiler for Java独立版中,我能够通过命令行属性在XML中登录编译信息,如下所示:
java -jar ecj-4.3.2.jar -log compile.xml <classpath,files>
然而,当我在plexus-compiler-eclipse中使用maven-compiler-plugin时,似乎我无法将此参数传递给编译器,而且我不确定这个的原因,插件的编译器是否是另一个,它不会产生新进程(我甚至尝试过可执行参数),或其他原因。
这是pom.xml部分:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<compilerId>eclipse</compilerId>
<forceJavacCompilerUse>true</forceJavacCompilerUse>
<!--<compilerArgument> -log compile.xml </compilerArgument>-->
<compilerArgs>
<arg>-log</arg>
<arg>compile.xml</arg>
</compilerArgs>
<fork>true</fork>
<verbose>true</verbose>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-eclipse</artifactId>
<version>2.3</version>
</dependency>
</dependencies>
</plugin>
答案 0 :(得分:0)
eclipse实现是plexus-compiler-eclipse
,它不接受fork
参数,因为它使用内部jvm。因此,它只能接受像MAVEN_OPTS
这样的jvm选项。
但是,默认实现是plexus-compiler-javac
,它支持自定义executable
。解决方法可能是这样的:将fork
设置为true,并指定executable
。
对于bash中的封皮,您可以访问:https://stackoverflow.com/a/37971000/3289354