Maven 命令参数-D和-P的区别
Maven 命令参数 中的 -D 表示 Properties属性,而 -P 表示 Profiles配置文件。
mvn -DpropertyName=propertyValue clean package
如果 propertyName 不存在于 pom.xml 文件中,它将被设置。如果 propertyName 已经存在 pom.xml 文件中,其值将被作为参数传递的值覆盖。要设置多个变量,请使用多个空格分隔符加-D:
mvn -DpropA=valueA -DpropB=valueB -DpropC=valueC clean package
例如,现有 pom.xml 文件如下所示:
<properties> <theme>myDefaultThemetheme> properties>
那么在执行过程中 mvn -Dtheme=newValue clean package 会覆盖 theme 的值,具有如下效果:
<properties> <theme>newValuetheme> properties>
-P 代表 Profiles 配置文件的属性,也就是说在
例如,现有 pom.xml 文件如下所示:
<profiles> <profile> <id>testid> ... profile> profiles>
执行 mvn test -Ptest 为触发配置文件。或者如下所示:
<profile> <id>testid> <activation> <property> <name>envname> <value>testvalue> property> activation> ... profile>
执行mvn test -Penv=test 为触发配置文件。
参考:
http://mvnbook.com/maven-properties.html