maven部分构建参数讲解

以下为例: -Dmaven.test.skip=true clean package -P ENV -pl PROJ -am -U

1. -Dmaven.test.skip=true

  • 作用 :跳过单元测试的编译执行

  • 细节 :不仅不运行测试,连测试代码(src/test/java)都不会编译。

  • 对比

    • -DskipTests=true:只跳过测试运行,但会编译测试代码。

    • -Dmaven.test.skip=true:更彻底,跳过全部测试相关工作。


2. clean

  • 作用 :执行 Maven 的 clean 生命周期。

  • 细节 :删除项目目录下的 target/ 文件夹,清理之前构建生成的所有文件(如 .class、JAR/WAR 包等),确保构建从干净状态开始,避免残留文件带来的问题。


3. package

  • 作用 :执行 Maven 的 package 生命周期。

  • 细节 :将编译后的代码打包成 JAR、WAR 等可分发格式,输出到 target/ 目录。

  • 注意clean package 组合起来就是"先清理,再打包"。


4. -P $ENV

  • 作用:激活指定的 Maven Profile(配置文件)。

  • 细节$ENV 是一个环境变量 ,通常在 CI/CD 中动态传入(如 devtestprod)。

  • 用途 :根据不同的环境加载不同的配置(如数据库连接、日志级别、打包资源等),在 pom.xml 中通过 <profiles> 标签定义。


5. -pl $PROJ

  • 作用 :指定要构建的子模块--project-list 的简写)。

  • 细节$PROJ 是模块的 artifactId(或者用 groupId:artifactId 格式),多个模块用逗号分隔。

  • 示例-pl module-a,module-b 表示只构建这两个子模块。


6. -am

  • 作用同时构建依赖的项目--also-make 的简写)。

  • 细节 :如果 $PROJ 依赖了其他模块,Maven 会先将这些被依赖的模块也构建出来,然后再构建目标模块。

  • 场景:在多模块项目中非常常用,避免因依赖缺失而导致构建失败。


7. -U

  • 作用强制更新快照(SNAPSHOT)依赖--update-snapshots 的简写)。

  • 细节:让 Maven 强制检查远程仓库中 SNAPSHOT 版本是否有更新,并重新下载,而不是使用本地缓存的旧版本。

  • 适用:开发阶段,依赖的 SNAPSHOT 版本频繁变动时使用。


完整命令执行流程

text

复制代码
1. 清理所有目标模块的 target/ 目录(clean)
2. 根据 $ENV 激活对应环境的 Profile(-P)
3. 确定要构建的模块及依赖链(-pl + -am)
4. 强制更新 SNAPSHOT 依赖(-U)
5. 跳过测试编译与执行(-Dmaven.test.skip=true)
6. 执行打包操作(package)
相关推荐
2601_962071572 小时前
【Java报错已解决】org.springframework.beans.factory.BeanCreationException
java·开发语言
zww89491113 小时前
酒馆预约系统开发实战:从需求分析到上线全流程指南
java·eclipse
zww89491116 小时前
匿名树洞系统开发实战:从需求分析到部署指南
java·eclipse
黑马程序员毕设7 小时前
基于Java的医院药品管理系统的优化设计与实现
java·开发语言·spring boot·小程序·架构·课程设计·毕设
木井巳7 小时前
【BFS/DFS 解决 FloodFill 算法】太平洋大西洋水流问题
java·算法·leetcode·深度优先·广度优先·宽度优先·推荐算法
白山编程大哥7 小时前
Java 集合算法:从排序、查找到底层原理的实战指南
java·python·算法
devpotato7 小时前
缓存与数据库更新顺序不一致问题
java·数据库·redis
xcl09258 小时前
酒馆预约系统开发实战:从需求分析到上线全流程指南
java·spring boot·需求分析
Kyrie_kk8 小时前
Java--IO--Path文件访问
java·后端
qinqinzqq8 小时前
Maven POM 格式、Schema 与 XSD:一篇讲透
java·maven