Maven 属性重载

发布于 2024-10-15 06:17:38 字数 773 浏览 1 评论 0原文

我有非常简单的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拒绝覆盖这个属性和默认值给测试(8080)。最初的问题是 TeamCity(CI 服务器外)将系统变量传递到 MAVEN_OPTS 中的 JVM,因此属性覆盖不起作用。

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

I have very simple maven descriptor which defined some properties:

<?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>

I can override it.port property with command:

$ mvn -Dit.port=8181 verify

But following command doesn't work as expected:

$ MAVEN_OPTS="-Dit.port=8181" mvn verify

This pass system variable to the JVM but maven refuse to override this property and default value given to test (8080). Original problem is that TeamCity (out CI server) pass system variables to the JVM in MAVEN_OPTS, so property overriding doesn't work.

Can I override maven properties with MAVEN_OPTS environment variable?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

假装爱人 2024-10-22 06:17:38

不,你不能。您可以:

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

No you can't. You can:

  • Use settings.xml on your local machine to specify the property
  • Use a profile in the project pom
  • Use -D directly on the command line.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文