Maven在生产环境的构建及常用参数

1. Maven 常用参数

  1. 跳过测试
1
2
-DskipTests=true       # 编译时不运行测试
-Dmaven.test.skip=true # 编译时不编译和运行测试(更彻底)
  1. 指定构建环境 / Profile
1
-P <profile_name>      # 指定 Maven 构建的 profile

profile 通常在 pom.xml 中定义,例如 devtestprod

  1. 指定 Maven 本地仓库
1
-Dmaven.repo.local=/path/to/local/repo
  1. 设置系统属性
1
-D<property_name>=<value>

常用于动态配置端口、版本号等。

  1. 离线模式
1
-o  # Maven 离线构建,不联网下载依赖
  1. 更新快照版本
1
-U  # 强制更新 SNAPSHOT 版本依赖

2. 生产建常用命令

  1. 普通打包(跳过测试)
1
mvn clean package -Dmaven.test.skip=true -P prod

先清理旧文件,再使用 prod profile 打包 jar/war。

  1. 生成可执行 jar(Spring Boot 示例)
1
2
mvn clean package -DskipTests=true -P prod
java -jar target/myapp-1.0.0.jar
  1. 只编译,不运行测试
1
mvn clean compile -Dmaven.test.skip=true -P prod
  1. 部署到远程仓库
1
mvn deploy -P prod -Dmaven.test.skip=true

适用于构建完成后上传到私有或公有 Maven 仓库。

  1. 全流程构建(clean → install → package → deploy)
1
mvn clean install package deploy -Dmaven.test.skip=true -P prod

3. 生产构建实践建议

  1. Profile 配置生产参数

    • prod profile 应包含数据库连接、日志级别、缓存策略等生产配置。
  2. 跳过测试或仅运行必要测试

    • 生产构建通常不运行大量单元测试,但可保留关键集成测试。
  3. 使用 mvn -U 保证依赖最新

    • 避免 SNAPSHOT 版本在生产环境不一致。
  4. 构建结果存档

    • 将 jar/war/zip 等构件存放到制品库(如 Nexus/Artifactory)以便回滚。