[Maven] maven插件系列之maven-shade-plugin 0 序言/背景 最近两天遇到一个【包冲突】的坑: common-resource-sdk 工程 依赖: nacos-client 依赖: http-client:4.5.3 business-data-service 工程 依
maven-shade-plugin 只存在一个goal shade:shade,需要将其绑定到 phase package 上 代码语言:javascript 复制 <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.1.1</version><configuration><!--put your configurations here--></con...
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><...
意思是说 hutool jar 包中有META-INF/MANIFEST.MF,而maven-shade-plugin-demo打包成 jar 后也包含META-INF/MANIFEST.MF,两者重复了,只会将其中一个复制进 uber jar;默认情况下,是将我们项目的 jar 中的META-INF/MANIFEST.MF复制进 uber jar 默认用项目的MANIFEST 那如果我们想保留 hutool 下的 MANIFEST.MF,...
总的来说,使用Maven的shade插件可以有效地解决版本冲突问题。通过创建一个包含所有依赖项的“超级”JAR文件,并对某些包进行重命名,我们可以确保应用程序在运行时能够正确加载所需的类和方法。这种方法适用于任何使用Maven进行依赖管理的项目,并可以在开发、测试和生产环境中使用。
这里用fastjson来模拟使用maven-shade-plugin解决项目中不同版本共存问题。原项目此时使用的是1.1.15版本的fastjson <!-- 原项目 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.15</version> </dependency> 假引入一个三方依赖,该依赖使用1.2.75版本的fastjso...
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> ...
这里用fastjson来模拟使用maven-shade-plugin解决项目中不同版本共存问题。原项目此时使用的是1.1.15版本的fastjson <!-- 原项目 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.15</version> </dependency> ...
maven-shade-plugin介绍 解决问题 1.环境准备 2.解决方案 3.引入依赖 一些需要注意的坑 背景 当我们在maven项目中引入第三方组件时,三方组件中的依赖可能会与项目已有组件发生冲突。 比如三方组件中依赖httpclient的版本是4.5.x,而项目中已有的httpclient版本是3.1.x,那么此时就会产生一下两种情况: ...
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" ...