我正在尝试向
id.walt/waltid-ssikit
a deps.edn
添加依赖项。但是,当我下载依赖项时,它无法解析所有依赖项:
Error building classpath. Unable to resolve org.webjars.npm/babel__highlight version: [8.0.0-alpha.1,9)
当我将依赖项添加到
pom.xml
时,它确实有效。 Maven 似乎并没有尝试解决缺少的 webjar 依赖关系。
我在使用这个时遇到问题
deps.edn
:
{:mvn/repos
{"waltid" {:url "https://maven.walt.id/repository/waltid/"}
"waltid-ssikit" {:url "https://maven.walt.id/repository/waltid-ssi-kit/"}
"jitpack.io" {:url "https://jitpack.io/"}
"Maven central" {:url "https://repo1.maven.org/maven2"}}
:deps {id.walt/waltid-ssikit {:mvn/version "1.2308021811.0"}}}
和
clj
它返回错误,而我期望它解决所有依赖项。
Clojure CLI - 使用
org.clojure/tools.deps
进行依赖项解析 - 尝试选择满足您请求的依赖项的最新可用版本。这通常是好的,因为它不太可能导致冲突(假设库做出一些努力来向后兼容——Clojure 库通常这样做)。
不幸的是,在这种情况下,它可以选择
org.webjars.npm/babel__code-frame {:mvn/version "8.0.0-alpha1"}
,它依赖于 org.webjars.npm/babel__highlight
的版本范围 -- [8.0.0-alpha1,9)
-- 尚未发布!
我能够“修复”此问题的最小更改是将这个依赖项添加到您的
:deps
地图中:
org.webjars.npm/babel__code-frame {:mvn/version "7.21.4"}
这会将
babel__code-frame
固定到 7.21.4
,这使得它依赖于实际已发布的 babel__highlight
版本,因此至少您可以运行程序。
注意:您可能会混合使用不兼容的 8.0.0-alpha1 和 7.x 版本的
org.webjars.npm/*
库。如果情况确实如此,请运行 clojure -X:deps tree
并查看其他 org.webjars.npm/*
内容似乎正在引入 8.0.0-alpha* 版本,并使用 https://search.maven.org 查找早期的非-要依赖的 alpha 版本。
版本范围很糟糕(但是
npm
的东西似乎充满了它们)。