Java 如何使用mvn-D通过命令行在Maven中设置(多个)属性?

Java 如何使用mvn-D通过命令行在Maven中设置(多个)属性?,java,maven,command-line,properties,Java,Maven,Command Line,Properties,如何在maven中使用mvn-D?如何使用它设置属性(或多个属性) 有关于mvn-D的官方文章吗 我找不到。谢谢。使用-D通过命令行设置属性的正确方法是: mvn -DpropertyName=propertyValue clean package 如果pom.xml中不存在propertyName,则会设置它 如果pom.xml中已经存在propertyName,则其值将被作为参数通过-D传递的值所覆盖 要发送多个变量,请使用多个空格分隔的-Ds: mvn -DpropA=valueA

如何在maven中使用
mvn-D
?如何使用它设置属性(或多个属性)

有关于mvn-D的官方文章吗


我找不到。谢谢。

使用
-D
通过命令行设置属性的正确方法是:

mvn -DpropertyName=propertyValue clean package
  • 如果
    pom.xml
    中不存在
    propertyName
    ,则会设置它
  • 如果
    pom.xml
    中已经存在
    propertyName
    ,则其值将被作为参数通过
    -D
    传递的值所覆盖
要发送多个变量,请使用多个空格分隔的
-D
s:

mvn -DpropA=valueA -DpropB=valueB -DpropC=valueC clean package
您可以在中查看有关属性的更多详细信息。更具体地说,在第节:

例子: 如果您的
pom.xml中有:

<properties>
    <theme>myDefaultTheme</theme>
</properties>

如果我想设置多个属性,如何编写它-Dxx=11-Dyy=2?@jiafu是的,只是空格分隔符,正如#earcam所说的,多个空格分隔的
-D
s是正确的方式,就像您所做的那样:
-Dxx=11-Dyy=2
。现在,如果你有几个常用的变量,你应该考虑使用配置文件。检查我在答案中发布的参考链接的项目。我是否需要将系统属性放在clean package命令之前?我不明白为什么
mvncleanpackage-DskipTests
可以工作,而skipTests放在clean命令之后package@OlivierBoiss它之所以有效,是因为不管你把变量放在目标之前还是之后,都是如此简单。
<properties>
    <theme>halloween</theme>
</properties>