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 中动态传入(如 dev、test、prod)。

  • 用途 :根据不同的环境加载不同的配置(如数据库连接、日志级别、打包资源等),在 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)
相关推荐
小羊没烦恼!2 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
俊昭喜喜里3 天前
java中的继承和多态的区别
java
小羊没烦恼!3 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
譕痕3 天前
JSONObject与JSONArray封装数据格式区别
java·json
胡写代码3 天前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖3 天前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
此时不提桶,更待何时3 天前
01-06-A-JVM排查实战详解
java·jvm
vipxieliang3 天前
ValidX 在 DDD 领域驱动设计中的实践
java·spring boot
ba_pi3 天前
mysql 查询所有表名并授权
java
ProcessOn官方账号3 天前
java函数式编程--入门基础
java·编程·函数式编程