2024 Clojure 状态调查!中分享你的想法。

欢迎!请查看关于页面以了解更多关于其运作方式的信息。

0
tools.deps
如果你有一个 A/deps.edn,包含

{:paths ["src/main/clojure"]
 :deps {something/else {:local/root "/Wherever"}
}


然后,在 /Wherever/deps.edn 中

{:deps {...}}  ;; 没有paths,只有deps.

当你从 A 中运行 clj -Spath 时,依赖会意外地拾取 A: /Wherever/src/main/clojure 中的 :paths
而当你从依赖内部运行 clj -Spath 时,则会拾取系统默认 deps.edn 中的路径

*解决方法*
始终指定 :paths

4 个答案

0

评论者:matthias.margush

嗨。我为这个错误上传了一个补丁。

补丁中提出的方案是
- 添加一个具有回退值的 default-paths 配置。类似于 extra-paths,多个 default-paths 定义会被合并。
- 解析依赖时不再合并 paths。相反,直接使用依赖的 paths。如果没有路径,则使用合并的 default-paths

如果任何配置依赖于现有逻辑的累积性质,这将是一个重大变更。

0

评论者:matthias.margush

(我也无法删除我上传的第一个附件。较新的一个有一点小调整。谢谢。)

0
_评论由:kommen_ 提出:

遇到同样的问题,容易复现

这有效


clj -Srepro -Sdeps '{:deps {com.bhauman/figwheel-core {:git/url "https://github.com/mfikes/figwheel-core" :sha "f05c62bba743d16f1fc4d16814365db726dc97b7"}}}' -e "(require 'figwheel.core)"


这引发了一个 {{java.io.FileNotFoundException: 无法定位figwheel/core__init.class, figwheel/core.clj或figwheel/core.cljc到classpath.}}

 
clj -Srepro -Sdeps '{:paths ["foo/src"] :deps {com.bhauman/figwheel-core {:git/url "https://github.com/mfikes/figwheel-core" :sha "f05c62bba743d16f1fc4d16814365db726dc97b7"}}}' -e "(require 'figwheel.core)"
 


0
参考:https://clojure.atlassian.net/browse/TDEPS-52 (由 gshayban 报告)
...