请在2024 Clojure现状调查!中分享您的想法。

欢迎!请查阅关于页面以获取有关此工作方式的更多信息。

+13
tools.deps
被重新分类

当在monorepo中工作时,特别是依赖于monorepo中定义的库时,通常通过:git/url,tag,sha:deps/root将其引入,如下所示

; clojure -Sdeps '{:deps {polylith-kaocha/kaocha-wrapper
  {:git/url "https://github.com/imrekoszo/polylith-kaocha"
   :git/sha "d1fcd406cf0813b836419e39706ae61929a391a2"
   :deps/root "projects/kaocha-wrapper"}}}' -Stree | grep 'lambdaisland/kaocha'
    . lambdaisland/kaocha 1.68.1059

有时候为了开发或调试,克隆monorepo并使用:local/root引用其库是有好处的。然而,仅用git属性指向本地文件夹的方式目前不起作用(Clojure CLI版1.11.1.1273)

; clojure -Sdeps '{:deps {polylith-kaocha/kaocha-wrapper
  {:local/root "/Users/ikoszo/imre/oss/polylith-kaocha"
   :deps/root "projects/kaocha-wrapper"}}}' -Stree | grep 'lambdaisland/kaocha'

(注意,lambdaisland/kaocha没有被打印出来,表明它不在依赖树中)

因为工具.deps看起来忽略了:deps/root:local/root依赖项中,因此开发人员目前必须将两者结合成:local/root,如下所示

; clojure -Sdeps '{:deps {polylith-kaocha/kaocha-wrapper
  {:local/root "/Users/ikoszo/imre/oss/polylith-kaocha/projects/kaocha-wrapper"}}}' -Stree | grep 'lambdaisland/kaocha'
    . lambdaisland/kaocha /Users/ikoszo/imre/oss/kaocha
    . lambdaisland/kaocha /Users/ikoszo/imre/oss/kaocha

https://clojure.org/reference/deps_and_cli中,目前是这样陈述的

常用坐标属性(所有均为可选)
...
:deps/root - 基于文件的依赖项中的一个相对目录路径,用于查找清单文件

本地项目属性
:local/root (必需) - 目录路径(将自动检测是否为deps或pom项目,另请参阅:deps/manifest)

阅读上述内容,:local/root可以视为文件依赖项,这对我来说意味着:deps/root应该正常工作,因为它没有其他说明。

是否能添加对此的支持?这将使在开发库或工具时在本地和git依赖项之间切换更加容易。

如果是这样,这也可能是有助于至少解决报告在https://clojure.atlassian.net/browse/TDEPS-132中的一部分问题。

(最初在以下Slack线程中提出并讨论:https://clojurians.slack.com/archives/C6QH853H8/p1682712720554439

1 个答案

+6

选择
 
最佳回答

是的,应该实现这一点。

登录状态 https://clojure.atlassian.net/browse/TDEPS-246

感谢 Alex!
...