当前位置: 首页 > news >正文

Maven 只打包部分模块,跳过单元测试... 常用打包参数

一、基础参数

参数说明
-Dmaven.test.skip=true跳过测试(编译和执行都跳过)。
-DskipTests仅跳过测试执行(但会编译测试代码)。
-X开启调试模式,输出详细日志(排查构建问题)。
-q静默模式,仅输出错误信息。
-e显示详细错误堆栈(适合排查异常)。
-U强制更新快照依赖(忽略本地缓存,从远程仓库拉取最新快照版本)。

二、模块控制参数

参数说明
-pl, --projects指定要构建的模块(支持逗号分隔)。例如:mvn package -pl module1,module2
-am, --also-make构建指定模块及其依赖的模块。例如:mvn package -pl moduleB -am
-amd, --also-make-dependents构建指定模块及其依赖它的模块。例如:mvn package -pl moduleC -amd

三、打包过程控制

参数说明
-DskipAssembly跳过 Assembly 插件(适用于 maven-assembly-plugin 的打包任务)。
-DdescriptorRefs指定 Assembly 描述符(自定义打包结构)。例如:jar-with-dependencies
-Dmaven.exec.skip=true跳过 Exec 插件的执行目标(如 javaexec:java)。

四、构建输出控制

参数说明
-DoutputDirectory自定义打包输出目录。例如:mvn package -DoutputDirectory=./dist
-DfinalName修改生成的文件名。例如:mvn package -DfinalName=myapp-1.0.jar

五、插件相关参数

1. Maven JAR 插件
参数说明
-Djar.finalName指定 JAR 文件名
-Djar.manifest.mainClass设置 JAR Manifest 的主类(用于可执行 JAR)。
2. Maven Shade 插件
参数说明
-Dshade.jar.name自定义 Shade 打包后的文件名
-Dshade.relocations重定位依赖包的包路径(避免冲突)。

六、性能优化参数

参数说明
-T, --threads并行构建。例如:-T 4 表示使用 4 个线程。
-Dmaven.compile.fork=true启用编译器多线程(加速编译)。

七、完整示例

1. 常规打包(跳过测试)
mvn clean package -DskipTests
2. 打包指定模块
mvn clean package -pl service-module,web-module -am
3. 生成可执行 JAR(使用 Shade 插件)
mvn clean package -Dshade.finalName=myapp.jar -Dshade.relocations=com.example=shaded.com.example
4. 强制更新快照依赖并并行构建
mvn clean install -U -T 2

八、注意事项

  1. 参数顺序
    参数位置可能影响结果,例如 -DskipTests 应放在 package 前或后均可,但某些插件参数需紧跟插件目标。
  2. 插件配置优先级
    命令行参数会覆盖 pom.xml 中的默认配置。
  3. 依赖冲突
    使用 -Dmaven.test.skip=true 时,若测试依赖未编译可能导致意外错误。

通过合理组合这些参数,可以高效控制 Maven 打包流程,满足开发、测试和生产环境的不同需求。


文章转载自:

http://U7mV5tuo.fbjqq.cn
http://x4tRPMA1.fbjqq.cn
http://VUDUVd8O.fbjqq.cn
http://meEIddzI.fbjqq.cn
http://xWu36RhU.fbjqq.cn
http://yRcXfkx2.fbjqq.cn
http://3vtd6UXV.fbjqq.cn
http://t6D0MZgM.fbjqq.cn
http://ZepnuiYd.fbjqq.cn
http://M21PCPWe.fbjqq.cn
http://kVi5lFuK.fbjqq.cn
http://aLyCG4yJ.fbjqq.cn
http://qcKDQglG.fbjqq.cn
http://sKnthY2q.fbjqq.cn
http://BaYekuc4.fbjqq.cn
http://o5feqy8R.fbjqq.cn
http://Kfa13B38.fbjqq.cn
http://g9vvBCfN.fbjqq.cn
http://TROq6A6n.fbjqq.cn
http://9XVrYnkI.fbjqq.cn
http://gtgNOyNf.fbjqq.cn
http://UxH0OeBp.fbjqq.cn
http://wqa6ni2L.fbjqq.cn
http://pFbSp42C.fbjqq.cn
http://lerjIlpw.fbjqq.cn
http://NQEgsOk1.fbjqq.cn
http://6upYZTSE.fbjqq.cn
http://E630ZXKW.fbjqq.cn
http://1AbFEXK3.fbjqq.cn
http://MQsF1NPj.fbjqq.cn
http://www.dtcms.com/a/387328.html

相关文章:

  • 【maven01】依赖管理的工具
  • BP神经网络多输入多输出回归预测+SHAP可解释分析+新数据预测(MATLAB完整源码)
  • MATLAB 时间序列小波周期分析
  • 计算机视觉进阶教学之DNN模块
  • 大模型无需懂MCP:工具调用范式的架构革命与实践指南
  • 剑指offer题单 9.14
  • IIS 站点 http 请求412问题解决
  • Web前端入门:从零开始做网站(视频教程)
  • 本地--Oracle表被锁了该如何处理
  • Doris与Clickhouse分析
  • ByteDance字节前端一面
  • 卫星通信+AI双核驱动,遨游智能三防手机连得上、会思考
  • 云手机通道具有哪些方面的优势
  • 前端实验(二)初识Vue
  • html.
  • 【人工智能与机器人研究】基于多模态的管道非接触式磁记忆检测方法研究
  • DIY Linux 桌面:让电脑再次快速运行
  • MySQL基础入门:开启数据库之旅
  • C++开发者如何开发自己的第一个mac应用(xcode + XIB + Objective-C C++)
  • LabVIEW风洞测试系统稳定性措施
  • Spring Boot 深入剖析:SpringBoot的启动流程
  • 机器人工具标定-记录一下-待验证(没数据)
  • 1.0 Labview中事件结构在while循环中使用注意事项(超时时间)
  • 微服务通信
  • 重定向、命令行判断、管道、正则三剑客
  • 破垄断!东土科技与海光信息联合发布全国产化工控系统,筑牢工业安全新底座
  • 一场史诗级的冒险——Docker命令大航海!
  • 基于 Node.js 的后端框架:NestJS 和 Express(二)
  • 大数据时代时序数据库选型指南:为何Apache IoTDB成优选——从技术架构与行业实践深度剖析
  • HBase 实战:3 步掌握基于 Rowkey 的数据更新技巧