maven多profile 打包下 -P参和-D参数

本文介绍了Maven中的配置文件Profiles及属性Properties的使用方法。通过-P参数可以激活指定环境的配置文件,而-D参数则用于修改POM文件中的属性值。

P代表(Profiles配置文件)
在<profiles>指定的<id>中,可以通过-P进行传递或者赋值。
假如pom.xml如下:

<profiles>

<profile>

<id>prod</id>

...

</profile>

<profile>

<id>test</id>

...

</profile>

</profiles>



打包时执行mvn clean package -P test将触发test环境的profile配置
如果pom.xml如下:

<profile>

<id>test</id>

<activation>

<property>

<name>env</name>

<value>test</value>

</property>

</activation>

<id>prod</id>

<property>

<name>env</name>

<value>prod</value>

</property>

</id>

</profile>



打包时执行mvn clean package -P prod将触发prod环境的profile配置

-D代表(Properties属性)

假如pom.xml如下:

<properties>

<attr>defaultattr</attr>

</properties>

 

执行mvn -Dattr=newattr clean package,则pom.xml内attr的实际值将被替换成newattr

 

命令行:
mvn -DpropertyName=propertyValue clean package
如果propertyName不存在pom.xml,它将被设置。
如果propertyName已经存在pom.xml,其值将被作为参数传递的值覆盖-D。
如果要发送多个变量,请使用多个空格分隔符加-D:

mvn -DpropA=valueA -DpropB=valueB -DpropC=valueC clean package

D:\Java\jdk1.8.0_102\bin\java.exe -Dmaven.multiModuleProjectDirectory=D:\code\chapter10 -Djansi.passthrough=true -Dmaven.home=D:\Maven\apache-maven-3.9.6 -Dclassworlds.conf=D:\Maven\apache-maven-3.9.6\bin\m2.conf "-Dmaven.ext.class.path=D:\IntelliJ IDEA 2024.1.4\plugins\maven\lib\maven-event-listener.jar" "-javaagent:D:\IntelliJ IDEA 2024.1.4\lib\idea_rt.jar=50071:D:\IntelliJ IDEA 2024.1.4\bin" -Dfile.encoding=UTF-8 -classpath D:\Maven\apache-maven-3.9.6\boot\plexus-classworlds-2.7.0.jar;D:\Maven\apache-maven-3.9.6\boot\plexus-classworlds.license org.codehaus.classworlds.Launcher -Didea.version=2024.1.4 -s D:\Maven\apache-maven-3.9.6\conf\settings.xml -Dmaven.repo.local=D:\repos -P tomcat7:run [INFO] Scanning for projects... [WARNING] The requested profile "tomcat7:run" could not be activated because it does not exist. [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 0.076 s [INFO] Finished at: 2025-10-16T18:10:56+08:00 [INFO] ------------------------------------------------------------------------ [WARNING] The requested profile "tomcat7:run" could not be activated because it does not exist. [ERROR] No goals have been specified for this build. You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: pre-clean, clean, post-clean, validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-site, site, post-site, site-deploy. -> [Help 1] [ERROR] [ERROR] To see the full stack tra
最新发布
10-17
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值