当我构建我的项目时,会出现以下错误:
[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中时,我得到:
$ 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.怎么回事?
发布于 2019-05-16 04:48:21
-Xlint是编译器选项,而不是maven选项或jvm选项。
在命令行中,maven接受-Xlint,但它将其视为-X maven选项(“调试”),并忽略其余的选项。所以它没有预期的效果。
在这两个编译器选项的特定情况下,您可以设置Maven属性,从而设置所需的编译器选项。将这些内容放在项目的.mvn/maven.config、MAVEN_OPTS、env或命令行中:
-Dmaven.compiler.showWarnings=true
-Dmaven.compiler.showDeprecation=true您还可以在您的compilerArgs或Maven settings.xml用户定义的配置文件中使用pom.xml属性。我看不到将列表值属性设置为系统属性的方法。您也不能使用compilerArgument或compilerArguments,它们是没有用户属性。
您可能还发现控制编译器的日志记录级别很有用;例如,您可以使用以下方法来沉默这些警告:
-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。
https://stackoverflow.com/questions/56161021
复制相似问题