Clojure传递依赖版本冲突。

6
我有一个Clojure的Leiningen项目,它有两个依赖项AB,以及一个传递性依赖项XAB都依赖于它。
A → X [version 1.0]
B → X [version 2.0]

AB都是外部依赖项。问题在于我不能同时为A使用版本2的X,也不能为B使用版本1的X,因为会抛出java.lang.NoSuchMethodError

是否有Clojure插件可以帮助阴影化AB的传递依赖关系,或者提供一种惯用的处理方法?


1
也许值得修复依赖项A中的问题并提交PR。或者,至少可以提交一个问题请求库升级。 - Alan Thompson
是的。我已经向依赖项“A”的开发人员提出了同样的请求。看起来这是理想的/长期的解决方案。 - HariUserX
1个回答

3

这是一个不错的库。它在 target/srcdeps 中创建了一个文件夹,覆盖了被标记的依赖项及其所有依赖项(传递性依赖项)。然而,我发现Java类导入解析存在问题,不得不逐个手动进行修正,并将被遮蔽的依赖项复制回源代码树并修改命名空间以使其正常工作。由于这种方法会破坏我的代码库,最终我还是向 A 的开发人员请求升级 X - HariUserX

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接