减少jar包大小(降低打包后单个jar包大小)
将静态资源、依赖jar、项目class分离。升级换版仅更新项目class打成的jar包。
实现过程
1.用maven-jar-plugin插件对打包后的MANIFEST.MF进行配置
org.apache.maven.plugins maven-jar-plugin3.2.0 ${mainClass} truelib/ false resources/ **/*.class
2.利用mave-assembly-plugin自定义的打包结构
maven-assembly-plugin 3.3.0 false bin/assembly.xml target make-assembly package single
3.配置assembly.xml文件,自定义结构
distribution
tar.gz
true
src/main/resources/
resources
0644
lib
runtime
打包结果
最终在target下有两个包
一个是项目.jar
一个是项目.tar.gz
jar由maven-jar-plugin打出来的,仅含项目的class文件。
tar.gz由maven-assembly-plugin打出来的,根据assembly.xml配置文件,定义两个文件夹,其中lib为项目依赖jar包,resources为静态资源。
使用说明
文件目录:
项目/项目.jar
项目/lib
项目/resources
即项目.jar和lib和resources放在同一层,依赖jar放在lib下,静态资源放在resources下。
java -jar 项目.jar 即可启动项目
参考
delay_message: 基于 sqlite 实现 kafka 延时消息,实现思路适用于所有分布式消息队列,如 RocketMQ、ActiveMQ。性能表现:单线程 1.5w/s - Gitee.com
(该引用的文件目录架构与文章所示有所区别)



