我有非常简单的 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>
我可以it.port
用命令覆盖属性:
$ mvn -Dit.port=8181 verify
但是以下命令无法按预期工作:
$ MAVEN_OPTS="-Dit.port=8181" mvn verify
这会将系统变量传递给 JVM,但 maven 拒绝覆盖此属性和为 test (8080) 提供的默认值。最初的问题是 TeamCity(出 CI 服务器)将系统变量传递给 JVM in MAVEN_OPTS
,因此属性覆盖不起作用。
我可以用MAVEN_OPTS
环境变量覆盖 Maven 属性吗?