Maven中的-D(Properties属性)和-P(Profiles配置文件)

D代表(Properties属性)

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

mvn -D propertyName=propertyValue clean package
  • 如果propertyName不存在pom.xml,它将被设置。
  • 如果propertyName已经存在pom.xml,其值将被作为参数传递的值覆盖-D

要发送多个变量,请使用多个空格分隔符加-D

mvn -D propA=valueA -D propB=valueB -D propC=valueC clean package

例:

如果你的pom.xml如下

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

那么在这个执行过程中mvn -D theme=halloween clean package会覆盖theme的值,具有如下效果:

<properties>
    <theme>halloween</theme>
</properties>

-P代表(Profiles配置文件)

也就是说在<profiles>指定的<id>中,可以通过-P进行传递或者赋值。

例:

如果你的pom.xml如下:

复制代码
  <profiles>
      <profile>
          <id>test</id>
          ...
      </profile>
   </profiles>
复制代码

执行mvn test -P test为触发配置文件。

或者

复制代码
<profile>
   <id>test</id>
   <activation>
      <property>
         <name>env</name>
         <value>test</value>
      </property>
   </activation>
   ...
</profile>
复制代码

执行mvn test -P env=test为触发配置文件。

原文地址:https://www.cnblogs.com/YatHo/p/7832443.html