maven-shade-plugin排除了声明为依赖项的jar maven-shade-plugin是一个用于构建Java项目的Maven插件,它可以将项目的所有依赖项打包到一个可执行的JAR文件中。在打包过程中,有时候我们希望排除一些声明为依赖项的JAR文件,以减小最终生成的JAR文件的大小或避免冲突。
Java 工程经常会遇到第三方 Jar 包冲突,使用 maven shade plugin 解决 jar 或类的多版本冲突。 maven-shade-plugin 在打包时,可以将项目中依赖的 jar 包中的一些类文件打包到项目构建生成的 jar 包中,在打包的时候把类重命名。下面的配置将 org.codehaus.plexus.util jar 包重命名为 org.shaded.plexus.util。
在使用 Maven 构建项目时,maven-shade-plugin 是一个常用的插件,它可以将项目依赖的所有 JAR 包打包到一个可执行的 JAR 文件中(也称为 "fat JAR" 或 "uber JAR")。然而,有时候你可能希望排除某些特定的依赖 JAR 包,不让它们被包含到最终的构建结果中。以下是如何使用 maven-shade-plugin 来排除特定依赖 JAR...
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包下的全部类都...
生成可执行的 Jar 包和 常用的资源转换类 包名重命名 打包时排除依赖 与其他常用打包插件比较 本文是对maven-shade-plugin常用配置的介绍,更详细的学习请参照Apache Maven Shade Plugin 官方文档 通过使用maven-shade-plugin插件进行 Maven 的打包操作,可以将项目中的依赖一同添加到最终的项目 Jar 包内,maven-shade-...
打包时排除项目的properties类型的配置文件 打包时,com.baomidou组织的包添加到当然JAR包里,默认是不会添加到当前包的 createSourcesJar选项实现了打包时为源代码再打一个包 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> ...
从maven-shade-plugin 1.6 开始,minimizeJar会保留filter中include配置的类,但是要注意: inlcude 默认会排除所有不在 include 配置中的类 这就会导致问题,我们来看个案例,我们引入logback依赖,但代码中未用到它,而我们又想将其下的 class 复制进 uber-jar,另外我们还想将 hutool 的cn/hutool/json包下的全部类都...
[INFO] Minimizing jar com.hello:TCP-client:jar:1.0-SNAPSHOT [INFO] Minimized 1266 -> 755(59%)... 重定位classes Java 工程经常会遇到第三方 Jar 包冲突,使用 maven shade plugin 解决 jar 或类的多版本冲突。 maven-shade-plugin 在打包时,可以将项目中依赖的 jar 包中的一些类文件打包到项目构建生成...
在maven工程中,我们常常遇到底层依赖包的版本冲突问题。如果高版本对低版本兼容,那么我们可以使用maven的exclusions排除掉低版本。但如果版本互不兼容,甚至是不同jar有相同类名的冲突,就比较棘手了。 比如,我在某个java工程中即使用了Hutool的加密工具类,也使用了openfeign的feign接口。而Hutool依赖了bcprov-jdk15to18...