Maven shade plugin在解决依赖关系冲突方面非常强大,但我遇到的情况如下:
我的项目
- Guava31
- 第三方依赖-1
- Guava18
我可以重新定位Guava31依赖关系,然后冲突就会解决。下面的情况如何?
我的项目
- 第三方-1
- Guava31
- 第三方-2
- Guava18
- 第三方-3
- Guava4
或者,如果有两个以上的依赖项作为同一依赖项但版本不同而发生冲突,该怎么办?
如果我使用relocation,那么thirdparty-1/guava 31将被重新定位,但是guava 18和guava 4仍然冲突。
我不知道该怎么处理这种情况。
1条答案
按热度按时间o0lyfsai1#
您需要在整个项目中消除这些冲突,而不仅仅是阴影的uber-jar。
在
pom.xml
声明中使用Maven<exclusions>
来实现这一点。例如: