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

欢迎!请查看 关于 页面以了解如何操作的更多信息。

0 投票
tools.deps
如果您有一个 A/deps.edn 并包含

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


那么在 /Wherever/deps.edn

{:deps {...}}  ;; 不包含 paths,只包含 dependencies。

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

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

4 答案

0 投票

评论者:matthias.margush

嗨。我已上传了这个错误的补丁以供讨论。

该补丁中提出的方案是:
- 添加了具有后备值的 default-paths 配置,这些配置与 extra-paths 类似进行合并。
- 当解析依赖项时不再合并 paths。相反,直接使用依赖项的 paths。如果没有路径,则使用合并的 default-paths

如果任何配置依赖于现有逻辑的累计特性,这将是一个破坏性的更改。

0 投票

评论者:matthias.margush

(我没有办法删除我上传的第一个附件。较近的一个有一个小小的调整。谢谢。)

0 投票
by
评论者: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 投票
by
参考: https://clojure.atlassian.net/browse/TDEPS-52 (由gshayban报告)
...