15

有没有办法通过命令行将编译器参数传递给 Maven?我知道我可以指定它,compiler-plugin但我也想从命令行运行Xlint。所以我尝试了类似的东西

mvn clean install -DskipTests=true -DcompilerArgument=-Xlint:deprecation

但没有成功。

4

2 回答 2

35

对于这种具体情况(弃用警告),实际上一个可以从命令行使用的属性

mvn clean install -Dmaven.compiler.showDeprecation=true

与 compilerArgument 解决方案相反,这也适用于在 maven 进程中使用编译器,而不仅仅是在使用 fork=true 时。

一个类似有用的属性是maven.compiler.showWarnings

于 2014-03-31T09:50:35.577 回答
21

您可以像这样定义编译器插件:

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <compilerArgument>${compilerArgument}</compilerArgument>
    </configuration>
</plugin>

然后从命令行传递参数:

mvn -DcompilerArgument=-Xlint:deprecation compile

如果不通过-DcompilerArgument,它不会破坏构建,因为编译器插件参数中的 'compilerArgument' 将为空并被忽略。

于 2013-09-06T09:32:02.897 回答