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 配置。类似地,将多个 default-paths 定义合并,就像 extra-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。}}

 
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报告)
...