6

我有非常简单的 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 属性吗?

4

1 回答 1

11

不,你不能。你可以:

  • 使用本地机器上的 settings.xml 来指定属性
  • 在项目 pom 中使用配置文件
  • 直接在命令行上使用 -D。
于 2011-01-28T09:49:21.060 回答