maven-plugin-shade 必须和 Maven 构建生命周期中的 package 阶段绑定,也就是说,当执行mvn package时会自动触发 shade。 要使用 maven-plugin-shade,只需要在 pom.xml 的<plugins>标签下添加它的配置即可,示例如下: <project>...<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactI...
Maven Shade 插件可以对项目的类路径进行处理,包括裁剪、压缩和优化等操作,同时也支持对项目的资源文件进行处理。 Maven Shade 插件的使用方法非常简单。首先,你需要在项目的 pom.xml 文件中引入 Maven Shade 插件,然后在 plugin 管理器中配置相应的参数。例如,你可以使用以下代码来配置 Maven Shade 插件: ```xml ...
shade 意为遮挡,在此处可以理解为对依赖的 jar 包的重定向(主要通过重命名的方式)。 --> <!--maven-plugin-shade 必须和 Maven 构建生命周期中的 package 阶段绑定, 也就是说,当执行 mvn package 时会自动触发 shade--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-p...
意思是说 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,...
如果uber-jar 被其他项目依赖,而我们的 uber-jar 又是保留了依赖 jar 的 class 的全类名,那么就可能类重复而导致类加载冲突;比如项目A依赖了我们的maven-shade-plugin-demo,还依赖了 B.jar,两个 jar 中都存在cn.hutool.core.util.StrUtil.class,但 api 完全不一样,根据双亲委派模型,只会成功加载其中某个cn...
maven-plugin-shade 插件提供了两个主要的能力: 1. 把整个项目(包含它的依赖)都打包到一个 "uber-jar" 中; 2. shade - 即重命名某些依赖的包。 具体来说,它提供了以下功能: 1. 按需选择要添加到最终 jar 包中依赖; 2. 重定位 class 文件; 3. 生成可执行 jar 包; 4. 生成项目资源文件。
<project>...<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.3.0</version><configuration><!-- put your configurations here --></configuration><executions><execution><phase>package</phase><goals><goal>shade</goal></goal...
Maven shade-plugin重定位不更新资源文件中的条目 Maven shade-plugin是一个用于构建可执行的Java应用程序的插件,它可以将所有依赖的类库打包到一个可执行的JAR文件中。而重定位(relocation)是shade-plugin的一个特性,它可以将依赖的类库的包名进行修改,以避免与其他依赖包产生冲突。
搭建一个新的模块rename-dependencies,专门用于存放1.2.75依赖。在pom文件中添加1.2.75的依赖,然后添加maven-shade-plugin插件。rename-dependencies的pom如下 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" ...
【摘要】 maven-assembly-plugin和maven-shade-plugin 使用 一、maven-assembly-plugin 1. 插件功能 maven-assembly-plugin 它是maven中针对打包任务而提供的标准插件,可以具体指定该包的类型,包里面包含哪些内容等。 官网地址:http://maven.apache.org/plugins/maven-assembly-plugin/ ...