欢迎!请参见关于页面获取更多关于这个平台的信息。
以下是我的一般问题陈述(这也适用于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脚本的更改——而且 whatever 方式解决此问题,都需要提供给需要根据用户特定的别名在基于工具的工具中运行分析的工具(如这里所讨论的https://ask.clojure.org/index.php/9848/tooling-based-tools-alpha-construct-basis-specified-aliases)。
哎呀,我提交了这个jira跟踪这个问题,但忘记在这里添加链接了: https://clojure.atlassian.net/projects/TDEPS/issues/TDEPS-174
我对此有一个后续问题。关于“共享”的部分——这是我们要共享一组依赖项还是依赖项的版本(类似于maven/lein依赖管理)的重要事项呢?
在后一种情况下,指定版本不包括依赖项,如deps.edn中的:deps - 它们仍然需要由项目包含,但可以有nil的坐标,版本由默认值填充。
:deps
需要共享的东西仅仅别名吗?
或者也包括deps?如果是后者,它们是否仅包含外部deps,或者还包括本地deps在共享项目的集中?