Maven属性重载 [英] Maven property overloading

查看:88
本文介绍了Maven属性重载的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个非常简单的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>

我可以使用以下命令覆盖it.port属性:

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

此将系统变量传递给JVM,但maven拒绝覆盖此属性以及为test提供的默认值(8080).最初的问题是TeamCity(输出CI服务器)将系统变量传递给MAVEN_OPTS中的JVM,因此属性覆盖不起作用.

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.

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

Can I override maven properties with MAVEN_OPTS environment variable?

推荐答案

不,您不能.您可以:

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

这篇关于Maven属性重载的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆