欢迎!请参见关于页面以了解有关此方法的更多信息。
以下是我的一般问题陈述(这也适用于monorepo)
deps.edn
~/.clojure/deps.edn
:override-deps
:default-deps
第1点和第2点由CLI/t.d.a.支持,但没有地方可以放置多项目标准化的一部分。
目前,希望实现第3点的人在使用CLJ_CONFIG提供团队标准的deps.edn文件时,可能会丧失第1点。这被认为是一种微妙的做法(尽管CLJ_CONFIG 有文档说明)。
CLJ_CONFIG
Michiel Borkent指出,他的clj-kondo工具在读取配置数据的来源方面遇到了类似的问题,他的解决方案是提供一个命令行参数,可以指定多个要读取的配置文件。Clojure CLI可以采用类似的方法,允许合并任意数量的deps.edn文件(在系统+用户级别的文件之后以及在命令行-Sdeps数据之前)。
clj-kondo
-Sdeps
当前的“系统+用户+项目+命令行”逻辑已经集成到tools.deps.alpha中自身,因此这不仅仅是一个CLI脚本更改——要解决此问题采用的方法需要对所有要在基于用户特定别名的结合deps.edn环境下运行的工具可用(如这里所讨论的https://ask.clojure.org/index.php/9848/tooling-based-tools-alpha-construct-basis-specified-aliases)。
tools.deps.alpha
哎呀,我已经提交了这个跟踪此问题的jira,但是忘了在这里添加链接:[https://clojure.atlassian.net/projects/TDEPS/issues/TDEPS-174](https://clojure.atlassian.net/projects/TDEPS/issues/TDEPS-174)
我关于这个问题有一个后续问题。对于“共享”的部分——是共享一整套依赖还是一套依赖版本(类似于 Maven/lein 依赖管理)很重要?
在后一种情况下,指定版本不会包括依赖,如在 deps.edn 中的 :deps - 需要由项目包含,但可以只有一个空协调项,由默认值填充版本。
需要共享的东西只有别名吗?
还是也包括依赖项?如果是后者,那它们仅指外部依赖项,还是也包括共享项目集中的本地依赖项?