【问题标题】:Clojure transitive dependency version conflictClojure 传递依赖版本冲突
【发布时间】:2021-09-03 03:24:15
【问题描述】:

我有一个 Clojure Leiningen 项目,它有两个依赖项 AB 以及一个传递依赖项 XAB 依赖于它。

A → X [version 1.0]
B → X [version 2.0]

AB 都是外部依赖项。问题是我不能将X 的第2 版用于AX 的第1 版用于B,因为它会抛出java.lang.NoSuchMethodError

Clojure 中是否有一个插件可以帮助隐藏 AB 的传递依赖关系,或者提供一种惯用的处理方式?

【问题讨论】:

  • 修复依赖A 中的问题并提交 PR 可能是值得的。或者,至少,提交一个请求升级库的问题。
  • 是的。我已经向依赖A 的开发人员提出了同样的要求。似乎是理想/长期的解决方案。

标签: clojure dependencies leiningen


【解决方案1】:

https://github.com/benedekfazekas/mranderson 如果是 Clojure 源,可能就是您要查找的内容。

【讨论】:

  • 这是一个不错的库。它在target/srcdeps 中创建了一个文件夹,隐藏了标记的依赖项,包括其所有依赖项(传递的依赖项)。但是,我看到了 java 类导入解析的问题,不得不手动一一更正它们并将隐藏的依赖项复制回源树,修改命名空间以使其正常工作。由于这种方法会弄乱我的代码库,我最终要求A 的开发人员升级X
猜你喜欢
  • 2012-07-05
  • 2016-02-26
  • 1970-01-01
  • 2012-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-10
相关资源
最近更新 更多