我有一个非常简单的maven描述符,它定义了一些属性:
<?xml version="1.0"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<properties>
<it.port>8080</it.port>
</properties>
</project>
Run Code Online (Sandbox Code Playgroud)
我可以it.port用命令覆盖属性:
$ mvn -Dit.port=8181 verify
Run Code Online (Sandbox Code Playgroud)
但是以下命令不能按预期工作:
$ MAVEN_OPTS="-Dit.port=8181" mvn verify
Run Code Online (Sandbox Code Playgroud)
这将系统变量传递给JVM,但是maven拒绝覆盖此属性和给test(8080)的默认值.原始问题是TeamCity(out CI服务器)将系统变量传递给JVM MAVEN_OPTS,因此属性覆盖不起作用.
我可以用MAVEN_OPTS环境变量覆盖maven属性吗?
当我构建我的项目时,我收到如下错误:
[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.
Run Code Online (Sandbox Code Playgroud)
但是当我放入-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.
Run Code Online (Sandbox Code Playgroud)
是什么赋予了?