Clojure deps.edn 未解决依赖关系

问题描述 投票:0回答:1

我正在尝试向

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
1个回答
0
投票

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
的东西似乎充满了它们)。

© www.soinside.com 2019 - 2024. All rights reserved.