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)
相关推荐
码农小河662 小时前
基于SSM+JSP的高校专业信息管理系统【附源码+数据库】
java·开发语言·数据库
风若飞4 小时前
Spring Ai 入门遇到问题1
java·后端·spring
Nuanyt5 小时前
LeetCode Hot 100 链表专题(五)· 2 题(Java)
java·算法·leetcode·链表
黑马程序员毕设5 小时前
基于 Java 的餐饮点餐系统设计与应用报告
java·开发语言
SL_staff5 小时前
从文档工具到知识中枢:基于JVS数字底座构建企业级统一内容管理平台的技术实践
java·开源·全栈
SL_staff5 小时前
从‘连得上’到‘管得好’:JVS-IOT双引擎驱动设备运维闭环
java·物联网·产品
w_zero_one8 小时前
递归算法(一)
java·开发语言·算法
SL_staff8 小时前
私有化低代码不是减配版开发:JVS双模式建模如何重建IT交付信任
java·低代码·spring cloud
墨着染霜华9 小时前
Redocly 生成 OpenAPI 接口文档踩坑实录|Node 版本兼容 + 接口地址错误问题解决
java
文丑颜不良啊9 小时前
LeetCode1881~1990题目解析
java·leetcode