解决Java中的可传递依赖冲突
我正在尝试构建一个与HBase通信的(Jersey)REST端点。尽管这是我仅有的两个顶级依赖项,但这两个依赖项都带有许多冲突的可传递依赖项。谷歌的番石榴就是这种冲突的一个简单例子:解决Java中的可传递依赖冲突,java,maven,gradle,maven-shade-plugin,Java,Maven,Gradle,Maven Shade Plugin,我正在尝试构建一个与HBase通信的(Jersey)REST端点。尽管这是我仅有的两个顶级依赖项,但这两个依赖项都带有许多冲突的可传递依赖项。谷歌的番石榴就是这种冲突的一个简单例子: HBase客户端指定版本11 Dropwizard指定18 Dropwizard不适用于版本11,HBase不适用于版本18 我已经检查了Maven shade插件文档,但它似乎不允许您重新定位依赖项jar中的类。因此,除了将这两个组件分离到单独的JVM之外,我不知道如何解决这个问题。这是一个肮脏的解决方案。但
- HBase客户端指定版本11
- Dropwizard指定18
businessingapi=Class.forName(“com.awesome.Businessing”,true,jarLoader).newInstance()代码>请尝试在pom.xml的
部分中为这些依赖项指定具体的版本。您能否提供更多详细信息,说明为什么不能使用升级/降级版本的guava运行每个依赖项?冲突很多,但让我丧命的是com.google.common.base.Stopwatch
,在版本17和版本18之间,API在没有任何形式的弃用的情况下发生了什么变化?没有机会分叉HBase并升级依赖关系?我发现本文非常有用。很久以来我一直想在这里发帖