news 2026/6/10 21:14:43

Maven打包不求人:maven-assembly-plugin入门指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Maven打包不求人:maven-assembly-plugin入门指南

快速体验

  1. 打开 InsCode(快马)平台 https://www.inscode.net
  2. 输入框内输入如下内容:
    为Java新手创建一个最简单的maven-assembly-plugin示例项目:1)单模块HelloWorld程序 2)打包为包含依赖的fat jar 3)添加简单的assembly描述文件 4)生成可直接运行的bash脚本。请用最简配置演示完整流程,并标注每个步骤的注意事项。
  3. 点击'项目生成'按钮,等待项目生成完整后预览效果

作为Java新手,刚学会写代码后最头疼的就是如何把项目打包分发。最近我用maven-assembly-plugin解决了这个问题,这里把从零开始的经验分享给大家,特别适合第一次接触Maven打包的同学。

1. 为什么需要maven-assembly-plugin

刚开始用Maven打包时,发现默认生成的JAR包有个大问题——依赖的第三方库不会自动包含进去。比如用到了Jackson库,别人运行时会报ClassNotFound错误。这时候就需要maven-assembly-plugin来制作包含所有依赖的"fat jar"(也叫uber jar)。

2. 创建基础Maven项目

  1. 用IDE或命令行创建标准的Maven项目
  2. 在pom.xml中添加maven-assembly-plugin依赖(注意要放在build/plugins里)
  3. 建议同时指定maven-compiler-plugin的Java版本,避免兼容问题

这里有个新手容易踩的坑:插件版本号最好明确指定,不要用变量引用,否则可能遇到版本冲突。

3. 编写Assembly描述文件

在src/main/assembly目录下新建package.xml(没有就创建这个目录),这个文件决定了打包方式。最常用的配置是:

  1. 设置打包格式为jar
  2. 包含所有依赖库
  3. 指定mainClass让JAR可执行
  4. 添加Linux/Windows启动脚本

特别提醒:mainClass一定要写对,就是包含main方法的完整类路径。我刚开始漏了包名,运行时一直报找不到主类。

4. 配置pom.xml关键参数

在plugin配置块中需要指定:

  1. 上面创建的assembly描述文件路径
  2. 最终生成的JAR包名称
  3. 执行package时自动运行assembly

建议把finalName设成和artifactId不同,这样能清楚区分原始JAR和fat jar。

5. 打包与测试

  1. 运行mvn clean package
  2. 在target目录会生成两个JAR:原始包和带dependencies的fat jar
  3. 用java -jar测试运行,确认不报ClassNotFound错误

如果打包失败,建议先执行mvn clean。有时候旧的编译结果会影响打包过程。

6. 进阶技巧

  1. 可以用assembly的fileSets精细控制哪些资源文件要打包进去
  2. 通过descriptorRefs使用预定义的打包模板
  3. 结合maven-shade-plugin处理依赖冲突

刚开始建议保持配置尽量简单,等熟悉后再尝试复杂场景。

实际体验建议

我在InsCode(快马)平台上测试这个流程时,发现它的在线编辑器特别适合新手——不用配置本地环境就能直接验证打包效果,还能一键分享给同事检查配置。

最重要的是部署功能真的省心,生成的JAR包可以直接运行测试,不用折腾服务器环境。对刚学Maven的同学来说,这种即时反馈能快速建立信心。刚开始我花了三天都没配好的东西,在平台上半小时就看到了正确结果。

快速体验

  1. 打开 InsCode(快马)平台 https://www.inscode.net
  2. 输入框内输入如下内容:
    为Java新手创建一个最简单的maven-assembly-plugin示例项目:1)单模块HelloWorld程序 2)打包为包含依赖的fat jar 3)添加简单的assembly描述文件 4)生成可直接运行的bash脚本。请用最简配置演示完整流程,并标注每个步骤的注意事项。
  3. 点击'项目生成'按钮,等待项目生成完整后预览效果

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 22:16:36

Windows系统下Apple触控板完美驱动:从零开始的完整配置指南

Windows系统下Apple触控板完美驱动:从零开始的完整配置指南 【免费下载链接】mac-precision-touchpad Windows Precision Touchpad Driver Implementation for Apple MacBook / Magic Trackpad 项目地址: https://gitcode.com/gh_mirrors/ma/mac-precision-touchp…

作者头像 李华
网站建设 2026/6/10 19:16:08

Kotaemon心理健康聊天机器人:情绪疏导初步尝试

Kotaemon心理健康聊天机器人:情绪疏导初步尝试 在焦虑、失眠、情感困扰日益普遍的今天,人们越来越需要一种随时可及、安全可靠的情绪支持方式。而传统心理咨询受限于资源稀缺与成本高昂,难以覆盖每一个深夜辗转反侧的灵魂。有没有可能让AI成为…

作者头像 李华
网站建设 2026/6/10 20:30:14

AI如何自动修复数据库连接超时问题

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个AI驱动的数据库连接监控工具,能够实时检测discard long time none received connection等异常状态。当发现长时间未收到响应的连接时,自动分析可能原…

作者头像 李华
网站建设 2026/6/10 19:58:49

CompareM基因组比较分析实战指南:从科研问题到深度解析

当你面对一批微生物基因组数据,想要揭示它们之间的进化关系、功能差异或生态适应性时,CompareM这款工具能帮你从序列层面找到答案。本文将从真实的科研问题出发,带你深入理解CompareM在基因组比较分析中的实战应用。 【免费下载链接】Compare…

作者头像 李华
网站建设 2026/6/7 20:27:02

如何轻松传递音视频二维码?多格式音视频生成二维码攻略

在日常交流、工作协作、内容推广中,分享音视频文件时常常面临诸多困扰 —— 格式不兼容、大文件传输缓慢、多人分享操作繁琐、平台上传受限。其实,借助便捷的在线工具,将各类音视频生成二维码,扫码即可快速播放或下载,…

作者头像 李华
网站建设 2026/6/9 23:11:32

终极Windows Apple触控板驱动指南:解锁原生级精密触控体验

在Windows平台上使用Apple触控板,你是否曾为功能受限而苦恼?现在,通过开源的精密度触控板驱动项目,你可以让MacBook触控板或Magic Trackpad 2在Windows系统中实现原生级的操作体验。本指南将带你从零开始,完整掌握安装…

作者头像 李华