正如标题所说,我无法使用 maven 将命令行参数传递给 java 编译器,我使用的是 maven-compiler-plugin去做,并相应地this (专门针对插件的 compilerArgs 选项)我正在使用“最新方式” 来指定传递给编译器的参数。好吧,更多代码,这是我的插件 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>-parameters</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
我正在按照说明 <fork>
的工具使用说明进行操作必须设置为 true,我不知道我错过了什么......请提供一点帮助?
提及以下内容可能有帮助,也可能没有帮助:我需要 parameters
指定参数 here因为我想在运行时使用反射获取我的方法中的参数名称;我在调用 maven 查看调试时使用 -X 参数,我向我展示了它执行的“fork”调用,我无法在任何地方使用我传递的参数(也许我需要启用插件;但我认为在这个案例是自动启用的,因为它不是任何配置文件的一部分,我不是专家,所以如果我错了请纠正我)。
编辑:我已经尝试了几种有和没有破折号的方法我什至尝试过“旧方法”来做到这一点:
<compilerArguments>
<parameters />
</compilerArguments>
并且:
<compilerArgument>-parameters</compilerArgument>
最佳答案
我的错误:我在修改我的 pom 文件之前创建了代码,然后使用 maven 运行它来检查它是否确实有效。 在那之后,我修改了我的 pom 以包含 -parameters
标志。代码已经编译没有那个标志并且之后没有被修改。因此,maven 没有看到代码有任何变化,也没有重新编译文件。
解决方案 执行mvn clean
,删除已编译的类,删除target
文件夹,或任何确保文件正确的必要操作重新编译。
关于java - 无法使用maven传递java编译器参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31345295/