欢迎!请查看关于页面以了解更多有关此内容的信息。
以下是我的一般性问题陈述(这也适用于单体仓库)
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脚本更改,解决这个问题所采取的方法需要对所有需要基于用户特定别名运行分析的工具可用(如此处所讨论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 中——它们仍然需要由项目包含,但可以用默认值填充的 nil 坐标来完成。
:deps
需要共享的东西只是别名吗?
或者也包括 deps?如果是后者,那它们仅对外部依赖进行操作,还是包括在共享项目中的本地依赖?