【发布时间】:2013-06-24 08:19:39
【问题描述】:
如何在maven中使用mvn -D?如何使用它设置一个属性(或多个属性)?
mvn -D有官方文章吗?
我找不到。谢谢。
【问题讨论】:
标签: java maven command-line properties
如何在maven中使用mvn -D?如何使用它设置一个属性(或多个属性)?
mvn -D有官方文章吗?
我找不到。谢谢。
【问题讨论】:
标签: java maven command-line properties
使用-D 通过命令行设置属性的正确方法是:
mvn -DpropertyName=propertyValue clean package
propertyName 不存在于pom.xml 中,则会对其进行设置。pom.xml 中已存在propertyName,则其值将被-D 作为参数传递的值覆盖。要发送多个变量,请使用多个空格分隔-Ds:
mvn -DpropA=valueA -DpropB=valueB -DpropC=valueC clean package
您可以在Maven: The Complete Reference 中查看有关属性的更多详细信息。更具体地说,在部分:6.1. Maven Command Line Options/6.1.1. Defining Properties。
如果你有pom.xml:
<properties>
<theme>myDefaultTheme</theme>
</properties>
然后mvn -Dtheme=halloween clean package 将在此执行期间覆盖themes 的值,具有效果,就像你有:
<properties>
<theme>halloween</theme>
</properties>
【讨论】:
-Ds 是正确的方法,就像您所做的那样:-Dxx=11 -Dyy=2。现在,如果您有几个通常一起使用的变量,您应该考虑使用配置文件。检查我在答案中发布的那个参考链接的项目"6.1.3. Using Build Profiles"。
mvn clean package -DskipTests 有效,而 skipTests 放在命令 clean package 之后