mvn clean package -Dmaven.test.skip=true -P pro参数解释
mvn clean package -Dmaven.test.skip=true -P pro
1 clean
清理项目的target/目录,确保构建从干净环境开始。2 package
执行 Maven 的生命周期到 package 阶段,通常会生成.jar或.war包。3 -Dmaven.test.skip=true
跳过测试用例的 执行 和 编译。
这是一个 JVM 系统属性,Maven 构建时会跳过 Surefire/Failsafe 测试任务。4 -P pro
它表示 激活 Maven Profile:pro。
Profile 是 Maven 用来实现“不同环境构建”的机制,例如dev、test、pre、pro等。
- P pro 在哪里读取配置
pom.xml(最常见)
项目的pom.xml内部定义:1
2
3
4
5
6
7
8
9
10
11<profiles>
<profile>
<id>pro</id>
<properties>
<env>prod</env>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
</profiles>~/.m2/settings.xml(用户级别配置)
这里也可以定义 profile,例如仓库源、私服账号:1
2
3
4
5
6
7
8<profiles>
<profile>
<id>pro</id>
<properties>
<nexus.url>http://nexus.example.com</nexus.url>
</properties>
</profile>
</profiles>全局 settings.xml(Maven 安装目录 conf/settings.xml)
2.2 优先级(从高到低)
- 命令行
-P pro - 用户级
~/.m2/settings.xml - 项目级
pom.xml
**Profile 通常影响哪些内容
1.典型使用场景:
- 切换不同环境配置文件(application-dev.yml / application-pro.yml)
- 控制不同插件行为
- 指定不同 JDK 版本
- 切换依赖(日志实现、数据库驱动)
2.例子(Spring Boot 常用)
1 | <profiles> |
然后在 resources/application.yml 中使用:
1 | spring: |
构建时:
mvn package -P pro
产物将写入 application-pro.yml 的配置。