Maven 命令参数-D和-P
更新于:2024-11-12 浏览:50677 次
Maven 命令参数 中的 -D 表示 Properties属性,而 -P 表示 Profiles配置文件。
Maven 命令参数-D和-P的区别
-D 表示设置 Properties属性,使用命令行设置属性 -D 的正确方法是:
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>myDefaultTheme</theme>
</properties>
那么在执行过程中 mvn -Dtheme=newValue clean package 会覆盖 theme 的值,具有如下效果:
<properties>
<theme>newValue</theme>
</properties>
-P 代表 Profiles 配置文件的属性,也就是说在 <profiles> 指定的 <id> 中,可以通过-P进行传递或者赋值。
例如,现有 pom.xml 文件如下所示:
<profiles>
<profile>
<id>test</id>
...
</profile>
</profiles>
执行 mvn test -Ptest 为触发配置文件。或者如下所示:
<profile>
<id>test</id>
<activation>
<property>
<name>env</name>
<value>test</value>
</property>
</activation>
...
</profile>
执行mvn test -Penv=test 为触发配置文件。