意思是说 hutool jar 包中有META-INF/MANIFEST.MF,而maven-shade-plugin-demo打包成 jar 后也包含META-INF/MANIFEST.MF,两者重复了,只会将其中一个复制进 uber jar;默认情况下,是将我们项目的 jar 中的META-INF/MANIFEST.MF复制进 uber jar 那如果我们想保留 hutool 下的 MANIFEST.MF,而去掉 maven-shade-pl...
[Maven] maven插件系列之maven-shade-plugin 0 序言/背景 最近两天遇到一个【包冲突】的坑: common-resource-sdk 工程 依赖: nacos-client 依赖: http-client:4.5.3 business-data-service 工程 依
maven-shade-plugin 必须和 Maven 构建生命周期的 package 阶段绑定,那么当 Maven 执行mvn package时会自动触发 maven-shade-plugin;使用很简单,在pom.xml添加该插件依赖即可 <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.6.0</version><executions><...
This plugin provides the capability to package the artifact in an uber-jar, including its dependencies and to shade - i.e. rename - the packages of some of the dependencies. 简单来说就是将依赖的包在package阶段一起打入jar包中,以及对依赖的jar包进行重命名从而达到隔离的作用。这里为了解决上面的...
从maven-shade-plugin 1.6 开始,minimizeJar会保留filter中include配置的类,但是要注意: inlcude 默认会排除所有不在 include 配置中的类 这就会导致问题,我们来看个案例,我们引入logback依赖,但代码中未用到它,而我们又想将其下的 class 复制进 uber-jar,另外我们还想将 hutool 的cn/hutool/json包下的全部类都...
这里用fastjson来模拟使用maven-shade-plugin解决项目中不同版本共存问题。原项目此时使用的是1.1.15版本的fastjson <!-- 原项目 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.15</version> </dependency> ...
2、inherited:true/false,这个plugin是否应用到该POM的孩子POM,默认true; 3、configuration:配置该plugin期望得到的properies,如上面的例子,我们为maven-jar-plugin的Mojo设置了classifier属性;如果你的POM有一个parent,它可以从parent的build/plugins或者pluginManagement集成plugin配置。
maven-shade-plugin插件可以配置自动精简那些项目没有用到的依赖的artifact,或者显式的配置精简项目用到的依赖的artifact下面没有用到的classes。 <project>...<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.2.1</version><executions...
maven-shade-plugin编译插件 打包package的时候警告:Discovered module-info.class. Shading will break its strong encapsulation. 问题原因:maven-shade-plugin缺少配置 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" ...
打包是一个比较头疼的事情,默认maven打包的结果只包含项目本身的代码,如果要执行代码,还得带上依赖。maven-shade-plugin插件就能够帮我们把项目依赖的包也打进最终文件。 shade打包过程 shade插件绑定在maven的package阶段,他会将项目依赖的jar包解压并融合到项目自身编译文件中。