如何同时使用不同版本的同名Maven传递依赖

我的Maven依赖树如下

Self
+- A
|  \- C 2.x
\- B
   \- C 3.x

该项目依赖A,B两个库, 而A,B使用了C库的不同版本, 且A,B对C的引用是必须的, 且这两个版本互相不兼容

该如何解决这个依赖冲突?

阅读 4.3k
2 个回答

可以简单地对A 进行屏避对C的依赖,用下面的方法

<dependency>
            <groupId>A</groupId>
            <artifactId>A</artifactId>
            <version>1.0</version>
            <exclusions>
                <exclusion>
                    <groupId>C</groupId>
                    <artifactId>C</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

但如果A对C的依赖是必须的且是不兼容的,则除重新用源码重打包或升级外也没有什么好办法。
或许模块或微服务是个方向,但都过重了。

新手上路,请多包涵

老哥你找到什么比较合理的解决方案了吗?刚好同遇到该问题,想请教下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题