如何使用 Xlint 编译 Maven 项目

2022-09-03 03:24:14

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

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

但没有成功。


答案 1

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

mvn clean install -Dmaven.compiler.showDeprecation=true

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

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


答案 2

您可以定义一个编译器插件,如下所示:

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

然后从命令行传递参数:

mvn -DcompilerArgument=-Xlint:deprecation compile

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


推荐