在构建项目时,出现类似以下错误:
NodePort
但是当我将[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
有什么作用?
答案 0 :(得分:0)
$ 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.
是编译器选项,不是maven选项或jvm选项。
在命令行上,maven接受-Xlint
,但将其视为-Xlint
maven选项(“调试”),而忽略其余部分。因此它没有预期的效果。
在这两个编译器选项的特定情况下,您可以设置Maven属性,以设置所需的编译器选项。将它们放在您项目的.mvn/maven.config
,-X
env var或命令行中:
MAVEN_OPTS
您还可以在-Dmaven.compiler.showWarnings=true
-Dmaven.compiler.showDeprecation=true
或Maven compilerArgs
用户定义的配置文件中使用pom.xml
属性。我看不到将列表值属性设置为系统属性的方法。您don't have user properties不能使用settings.xml
或compilerArgument
。
您可能还会发现控制编译器的日志记录级别很有用;例如,您可以使用以下方法使这些警告静音:
compilerArguments
请注意,显式设置-Dorg.slf4j.simpleLogger.log.org.apache.maven.plugin.compiler.CompilerMojo=warn
将不抑制-Dmaven.compiler.showWarnings=false
消息。参见How can I suppress javac warnings about deprecated api?。 Maven似乎没有提供在命令行上设置相关属性-Xlint
的方法。您也不能直接-Xlint:-deprecated -Xlint:-unchecked
设置它们,因为您不能设置单个插件属性。它必须是settings.xml
。