maven-shade-plugin 使用指南
所属分类 maven
浏览量 1773
jar包冲突,业界解决方案包括osgi, java modules,springboot式的超级pom文件,各种DIY classloader方案 。
一个可选的方案 ,使用 maven-shade plugin ,
将sdk与容易冲突的依赖包如 httpclient 打在一起,修改httpclient的包名 xxx.org.apache
可执行jar
java -jar -Dname=tiger shadedemo-1.0-dyyx.jar
java -Dname=tiger -jar shadedemo-1.0-dyyx.jar
maven-shade-plugin 将 goal shade:shade 绑定到 phase package 上
生成一个 uber-jar,以 -shaded.jar 为后缀的 jar 包
Selecting Contents for Uber JAR
依赖 exclude
自动将不使用的类全部排除掉
minimizeJar
Attaching the Shaded Artifact
默认会生成一个Jar包和一个以 -shaded 结尾的uber-jar包,可以配置指定uber-jar的后缀名
Executable JAR
设置 MainClass 创建一个可执行 Jar 包
Relocating Classes
冲突类重命名
插件配置
org.apache.maven.plugins
maven-shade-plugin
2.4.3
true
true
dyyx
*:*
**/*.sql
**/*.groovy
**/*.xml
**/*.properties
**/*.txt
META-INF/services/*
dyyx.Hello
org.apache.commons.lang3
org.shade.commons.lang3
package
shade
META-INF/MANIFEST.MF
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: dugang
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_121
Main-Class: dyyx.Hello
完整代码
https://gitee.com/dyyx/demos/tree/master/shade
上一篇
下一篇
springboot 使用 servlet 过滤器
springboot 使用 拦截器
问题排查命令和工具及实战案例
maven-assembly-plugin 和 maven-shade-plugin
领悟人生金句
OLAP术语