如何在 Maven 项目中使用-Xlint: uncheck 进行编译?

在 NetBeans 7.2中,我在 Maven 项目中找不到如何使用 -Xlint: uncheck 进行编译的方法。在 Ant 项目下,您可以通过进入 Project Properties-> Compiling 来更改编译器标志,但是 Maven 项目似乎没有这样的选项。

有没有什么方法可以使用 Maven 将 IDE 配置为使用这些标志进行编译?

39395 次浏览

我想您可以在 pom.xml 中设置编译器参数

 <compilerArgument>-Xlint:unchecked</compilerArgument>

我想详细阐述一下@Nishant 的回答。compilerArgument标记需要进入 plugin/configuration标记内部。下面是一个完整的例子:

<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>
<testSource>1.8</testSource>
<testTarget>1.8</testTarget>
<compilerArgument>-Xlint:unchecked</compilerArgument>
</configuration>
</plugin>
</plugins>

POM 文件信息准确无误。在 Jenkins 中构建其他人的 Maven 项目,并且无法访问 pom 文件存储库,这对我来说是一个额外的挑战。

例如,我创建了一个预构建步骤,将编译器参数从 git 下载后插入 pom 文件

sed -i 's|/target> *$|/target>\n<compilerArgument>\n-Xlint:deprecation\n</compilerArgument>|' $WORKSPACE/pom.xml

这对我有用。

<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
<compilerArguments>
<endorseddirs>${endorsed.dir}</endorseddirs>
</compilerArguments>
<compilerArgs>
<arg>-Xlint:unchecked</arg>   <-------this right here ---->
</compilerArgs>
</configuration>
</plugin>
</plugins>