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)
相关推荐
霸道流氓气质1 小时前
Java中信号量(Semaphore):从本地到分布式
java·开发语言·分布式
怪奇云呼军1 小时前
G.711、Opus 和重采样会拖慢识别吗?闪电智能VoiceAgent 的音频入口怎么选
java·人工智能·python·算法·云计算·音视频
ZC跨境爬虫1 小时前
LeetCode 27. 移除元素(双指针详解 + Java Python 多解法对比)
java·python·leetcode
kisbad2 小时前
Day 036|OpenAI Agents SDK 快速开始:今天跑通第一个 Agent
java·前端·javascript
憧憬成为java架构高手的小白2 小时前
langchain4j框架学习
java
0x532 小时前
Java网络编程(四)
java·网络
ly76893 小时前
Java 设计模式详解:从原则到 23 种经典模式
java·开发语言·设计模式
萧瑟余晖3 小时前
Java深入解析篇三十之Java日志框架
java·开发语言
Suxing94 小时前
C语言基础分享:从“租房”到“拆迁”,C语言动态内存管理
java·数据结构·算法