应用场景

  应用依赖了某个客户端的Jar包,其依赖1.0版本的Jar包X。按照Maven的依赖仲裁原则,如果存在更短的依赖路径或者依赖路径相同,依赖声明靠前,都会影响客户端依赖的X包的版本,需要通过某种方式能够让客户端依赖的X包不受应用的影响。
客户端隔离策略

解决方案

方案一:scope为provided

说明:使用maven对客户端打包时,将scope改为provided,由应用提供依赖的X包。这种方案要求X包的不同版本能够兼容。

方案二:更改包名

说明:使用maven-shade-plugin插件,将客户端依赖的X包名更改为其它名称;

方案三:使用类加载器隔离

说明:首先使用maven-shade-plugin插件,将X打包到客户端的Jar包中,然后使用类加载机制加载指定的类;

maven-shade-plugin介绍

功能:生成某个jar包时,能够将其依赖的其它jar包同时打包进来形成一个jar包,且能够更改其依赖的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.

详情参考:https://maven.apache.org/plugins/maven-shade-plugin/

相关文章:

  • 2021-08-25
  • 2021-05-31
  • 2021-06-21
  • 2021-09-16
  • 2022-12-23
  • 2022-03-05
  • 2021-11-04
  • 2021-07-05
猜你喜欢
  • 2022-02-03
  • 2022-12-23
  • 2021-09-11
  • 2021-07-04
  • 2021-07-25
  • 2022-12-23
  • 2022-01-20
相关资源
相似解决方案