首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将-Xlint:deprecation或-Xlint:unchecked传递给Maven?

如何将-Xlint:deprecation或-Xlint:unchecked传递给Maven?
EN

Stack Overflow用户
提问于 2019-05-16 04:48:21
回答 1查看 3.6K关注 0票数 4

当我构建我的项目时,会出现以下错误:

代码语言:javascript
复制
[INFO] SomeClass.java: Some input files use or override a deprecated API.
[INFO] SomeClass.java: Recompile with -Xlint:deprecation for details.
[INFO] SomeClass.java: Some input files use unchecked or unsafe operations.
[INFO] SomeClass.java: Recompile with -Xlint:unchecked for details.

但是,当我把-Xlint:deprecation-Xlint:unchecked放到我的MAVEN_OPTS.mvn/maven.config中时,我得到:

代码语言:javascript
复制
$ MAVEN_OPTS="-Xlint:unchecked " mvn -B clean test 
Unrecognized option: -Xlint:unchecked
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

怎么回事?

EN

回答 1

Stack Overflow用户

发布于 2019-05-16 04:48:21

-Xlint是编译器选项,而不是maven选项或jvm选项。

在命令行中,maven接受-Xlint,但它将其视为-X maven选项(“调试”),并忽略其余的选项。所以它没有预期的效果。

在这两个编译器选项的特定情况下,您可以设置Maven属性,从而设置所需的编译器选项。将这些内容放在项目的.mvn/maven.configMAVEN_OPTS、env或命令行中:

代码语言:javascript
复制
-Dmaven.compiler.showWarnings=true
-Dmaven.compiler.showDeprecation=true

maven编译器插件

您还可以在您的compilerArgs或Maven settings.xml用户定义的配置文件中使用pom.xml属性。我看不到将列表值属性设置为系统属性的方法。您也不能使用compilerArgumentcompilerArguments,它们是没有用户属性

您可能还发现控制编译器的日志记录级别很有用;例如,您可以使用以下方法来沉默这些警告:

代码语言:javascript
复制
-Dorg.slf4j.simpleLogger.log.org.apache.maven.plugin.compiler.CompilerMojo=warn

注意,显式设置-Dmaven.compiler.showWarnings=false不会抑制-Xlint消息。见我如何才能阻止javac警告有关被弃用的api?。Maven似乎没有提供在命令行上设置相关属性-Xlint:-deprecated -Xlint:-unchecked的方法。您也不能直接设置settings.xml,因为您不能设置单个插件属性。必须是pom.xml

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56161021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档