【问题标题】:Maven property overloadingMaven 属性重载
【发布时间】:2011-06-17 02:27:41
【问题描述】:

我有一个非常简单的 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 服务器)将系统变量传递给 MAVEN_OPTS 中的 JVM,因此属性覆盖不起作用。

我可以用MAVEN_OPTS 环境变量覆盖maven 属性吗?

【问题讨论】:

  • 我知道这很旧,但我的 TeamCity (2017.2.2) 将系统属性作为内联“-D”参数传递(根据日志),但它仍然无法正常工作。有什么想法吗?

标签: maven-2 teamcity system-properties


【解决方案1】:

不,你不能。你可以:

  • 使用本地计算机上的 settings.xml 来指定属性
  • 在项目 pom 中使用配置文件
  • 直接在命令行上使用 -D。

【讨论】:

    猜你喜欢
    • 2011-07-12
    • 2014-04-08
    • 2012-09-15
    • 1970-01-01
    • 2014-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    相关资源
    最近更新 更多