[Maven] maven插件系列之maven-shade-plugin 0 序言/背景 最近两天遇到一个【包冲突】的坑: common-resource-sdk 工程 依赖: nacos-client 依赖: http-client:4.5.3 business-data-service 工程 依
filter:过滤器,可以配置多个 artifact:复合标识符,用来匹配 jar,简单点说,就是匹配 jar 的匹配规则按 Maven 的坐标:groupId:artifactId[[:type]:classifier] 进行配置,groupId:artifactId必配,[[:type]:classifier]选配;支持通配符*和?,例如:<artifact>*:*</artifact>(相当于匹配上所有jar) exclude:排除项,也...
如果uber-jar 被其他项目依赖,而我们的 uber-jar 又是保留了依赖 jar 的 class 的全类名,那么就可能类重复而导致类加载冲突;比如项目A依赖了我们的maven-shade-plugin-demo,还依赖了 B.jar,两个 jar 中都存在cn.hutool.core.util.StrUtil.class,但 api 完全不一样,根据双亲委派模型,只会成功加载其中某个cn....
重定位 class 如果uber-jar 被其他项目依赖,而我们的 uber-jar 又是保留了依赖 jar 的 class 的全类名,那么就可能类重复而导致类加载冲突;比如项目A依赖了我们的maven-shade-plugin-demo,还依赖了 B.jar,两个 jar 中都存在cn.hutool.core.util.StrUtil.class,但 api 完全不一样,根据双亲委派模型,只会成功加...
<version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <properties> <project.build.sourceEncoding> UTF-8 </project.build.sourceEncoding> </properties> <!-- jar包下载地址--> <repositories> <repository> <id>cloudera</id> <url>https://repository.cloudera.com/artifactory/cloudera-repos/</ur...
简介:Maven Shade Plugin是Maven的一个插件,主要用于解决大型项目中的依赖冲突和类冲突问题。它可以将所有依赖项打包到一个JAR文件中,创建一个“fat” JAR(也称为“uber” JAR),使得应用程序可以作为一个独立的可执行JAR运行。此外,它还可以重命名、移除或合并类来解决类冲突,减少JAR包数量,并将项目中的资源文件...
打包是一个比较头疼的事情,默认maven打包的结果只包含项目本身的代码,如果要执行代码,还得带上依赖。maven-shade-plugin插件就能够帮我们把项目依赖的包也打进最终文件。 shade打包过程 shade插件绑定在maven的package阶段,他会将项目依赖的jar包解压并融合到项目自身编译文件中。
类com.mysql.jdbc.Driver 加载中。这个类已经被弃用。新的驱动类是 com.mysql.cj.jdbc.Driver,这个驱动通过 SPI 机制已经自动注册了,不需要手动加载 从中我们会产生 2 个疑问 com.mysql.jdbc.Driver 不应该是mysql-connector-java 5.1.49的吗,怎么会被弃用 ...
当我们在maven项目中引入第三方组件时,三方组件中的依赖可能会与项目已有组件发生冲突。 比如三方组件中依赖httpclient的版本是4.5.x,而项目中已有的httpclient版本是3.1.x,那么此时就会产生一下两种情况: 如果用三方组件的高版本httpclient覆盖原有的低版本httpclient,有可能会导致原来项目启动运行失败。即使高版本兼容低版...
maven-assembly-plugin 它是maven中针对打包任务而提供的标准插件,可以具体指定该包的类型,包里面包含哪些内容等。 官网地址:http://maven.apache.org/plugins/maven-assembly-plugin/ 2. 使用内置Assembly Descriptor 默认情况下,maven-assembly-plugin内置了几个可以用的assembly descriptor: ...