无法使用maven传递java编译器参数
正如标题所说,我无法使用maven将命令行参数传递给java编译器,我正在使用来传递,因此(特别是对于插件的compilerArgs选项),我正在使用“最新方式”来指定传递给编译器的参数。这是我的maven插件配置,我不确定我做错了什么:无法使用maven传递java编译器参数,java,maven,plugins,Java,Maven,Plugins,正如标题所说,我无法使用maven将命令行参数传递给java编译器,我正在使用来传递,因此(特别是对于插件的compilerArgs选项),我正在使用“最新方式”来指定传递给编译器的参数。这是我的maven插件配置,我不确定我做错了什么: <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<fork>true</fork>
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
以及:
-参数
请注意,你必须在开始之前写一封“-”字母
参数
在下面,您可以看到插件的配置和一些示例
编译器参数
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<fork>true</fork>
<compilerArgs>
<arg>-verbose</arg>
<arg>-Xlint:all,-options,-path</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
org.apache.maven.plugins
maven编译器插件
3.3
1.8
1.8
真的
-冗长的
-Xlint:all,-选项,-路径
来自:
编译器插件用于编译项目的源代码。从3.0开始,默认编译器是javax.tools.JavaCompiler(如果您使用的是java 1.6),用于编译java源代码。如果要使用javac强制插件,必须配置插件选项forceJavacCompilerUse
我猜javax.tools.JavaCompiler
与javac
与-parameters
选项的工作方式不同
尝试强制javac
使用
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<forceJavacCompilerUse>true</forceJavacCompilerUse>
<fork>true</fork>
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
org.apache.maven.plugins
maven编译器插件
3.3
1.8
1.8
真的
真的
-参数
PFFF的家伙们忘了它,很抱歉打扰你:(
我的错误:我在前面创建了代码来修改我的pom文件,并使用MAVEN运行它来检查它是否实际工作,之后,我修改了我的pom以包含-parameters
标志,以便在我的方法中打印我的参数名称,以查看它是否实际工作e代码已经编译过一次,没有设置标记,代码在之后从未被修改过,因此maven“说”这个文件没有变化,我不需要重新编译,我只使用以前编译过的代码(这通常是一件好事,它缩短了编译时间)但在本例中不是这样,因为-parameters标志以一种“fat类”的方式编译代码(或者至少更重,因为它包含参数的名称),但maven不知道这一点
解决方案执行mvn清理或删除已编译的类或删除/target文件夹(总之,做任何必要的事情以确保再次编译文件)不,我已经尝试过了,但不起作用,我尝试过很多变体,什么都没有:(看这里,你可以看到你必须使用依赖解析来让它工作,你能详细说明一下如何做到这一点吗?因为我看到的是编译阶段(我显然正在执行)的“自动附加”,我也这么认为,但我在使用“本机”时找不到区别编译器你有没有试过在没有maven的情况下编译,看看这个选项是否有效?那么,这个呢?
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<fork>true</fork>
<compilerArgs>
<arg>-verbose</arg>
<arg>-Xlint:all,-options,-path</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<forceJavacCompilerUse>true</forceJavacCompilerUse>
<fork>true</fork>
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>