maven 打包时自定义变量的使用
maven打包时,如果有一些变量在多个地方使用,可以使用-D的方式或者properties的方式。
使用-D的方式或者properties的方式定义的变量,在Dockfile或者shell脚本或者pom中都可以被动态的替换为期望的值。
原文地址:https://blog.csdn.net/feier7501/article/details/24060089?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param
Maven中的-D(Properties属性)和-P(Profiles配置文件)
-D代表(Properties属性)
使用命令行设置属性-D的正确方法是:
mvn -DpropertyName=propertyValue clean package
- 
如果 propertyName不存在pom.xml,它将被设置。
- 
如果 propertyName已经存在pom.xml,其值将被作为参数传递的值覆盖-D。
要发送多个变量,请使用多个空格分隔符加-D:
mvn -DpropA=valueA -DpropB=valueB -DpropC=valueC clean package
例:
如果你的pom.xml如下:
<properties>
    <theme>myDefaultTheme</theme>
</properties>
那么在这个执行过程中mvn -Dtheme=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 -Ptest为触发配置文件。
或者
<profile>
   <id>test</id>
   <activation>
      <property>
         <name>env</name>
         <value>test</value>
      </property>
   </activation>
   ...
</profile>
执行mvn test -Penv=test为触发配置文件。
具体实践例子,参考:http://www.cnblogs.com/EasonJim/p/6828743.html
总结:
更多的参考Maven帮助文档:
http://books.sonatype.com/mvnref-book/reference/running-sect-options.html#running-sect-define-prop
 
                    
                 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号