欢迎!请参阅关于页面以了解更多有关此信息的工作方式。
以下是我的一般问题陈述(这也适用于单仓)
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
关于这个问题,我有一个后续问题。对于“共享”的东西——这是共享一组依赖还是一组依赖版本(类似于 Maven/Lein 依赖管理)的重要事情?
在后一种情况下,指定版本将不会包括依赖,如 deps.edn 中的 :deps ——它们仍然需要被项目包含,但只需用默认值填充 nil 坐标和版本即可。
:deps
需要共享的内容只有别名吗?
还是也包括依赖?如果是后者,它们是否只针对外部依赖,或者是包括共享项目集中的本地依赖?