-D代表(Properties属性)
使用命令行设置属性-D的正确方法是:
- 假如pom.xml如下:
<!--自定义变量 -->
<properties>
<xml>testng</xml>
</properties>
......
......
<suiteXmlFiles>
<suiteXmlFile>src/test/java/xxx/${xml}.xml</suiteXmlFile>
</suiteXmlFiles>
- 执行以下mvn命令,则pom.xml内xml的实际值将被替换成testng-test1:
mvn clean test -U -Dxml=testng-test1
命令行 mvn -D propertyName=propertyValue clean package:
- 如果propertyName不存在pom.xml,它将被设置。
- 如果propertyName已经存在pom.xml,其值将被作为参数传递的值覆盖-D。
- 如果要发送多个变量,请使用多个空格分隔符加-D:
mvn -DpropA=valueA -DpropB=valueB -DpropC=valueC clean package
-P代表(Profiles配置文件)
也就是说在<profiles>指定的<id>中,可以通过-P进行传递或者赋值。
- 如果你的pom.xml如下:
执行mvn test -Ptest为触发配置文件。
<profiles>
<profile>
<id>test</id>
...
</profile>
</profiles>
- 或者pom.xml如下:
执行mvn test -Penv=test为触发配置文件。
<profile>
<id>test</id>
<activation>
<property>
<name>env</name>
<value>test</value>
</property>
</activation>
...
</profile>
具体实践例子,参考:http://www.cnblogs.com/EasonJim/p/6828743.html
总结
更多的参考Maven帮助文档:
http://stackoverflow.com/questions/17332857/how-to-use-the-mvn-d-to-set-multiple-properties-in-maven-via-command-line
http://books.sonatype.com/mvnref-book/reference/running-sect-options.html#running-sect-define-prop
Google搜索关键字:maven d flag
网友评论