请参与2024年Clojure状态调查!

欢迎!请访问关于页面以获取更多关于如何使用本网站的信息。

0
工具
编辑

我在RHEL7 Docker镜像上安装了Clojure 1.10.1.483,并在/usr/local/lib/clojure/deps.edn(安装级别的配置)中修改了仓库配置指向我们公司的artifactory仓库。

但是,尽管-Sverbose选项指出该文件位于config_paths中,如果在目录外部运行这些仓库则无法被加载。

执行类似于clojure -e “(clojure-version)”

  • 如果从安装目录中执行会成功,因为deps.edn被识别为‘project’配置。这表明配置本身没有问题。
  • 在其他任何目录中执行会失败,并指出无法连接到默认仓库(repo1.maven.org等),这些仓库在任何配置文件中都不存在。

用户级别配置默认为(全部注释)所以不应产生影响,但-Srepro选项也没有作用。

我唯一能得出的结论是安装级别的配置没有被正确加载。

有人能在这里提供一些线索吗?

1 答案

+1

选择
 
最佳答案

我相信 tools.deps.alpha 现在已经将其系统配置作为其分发的一部分“烤进”去了,并且在“系统”位置提供的实际的 deps.edn 文件仅用于向后兼容,实际上现在并未使用。

无论如何,您一定不要修改“系统”版本,仅修改每个用户或每个项目的版本。

我也非常确定,现在 config_paths 和 :config-files 仅出于历史原因才提供,实际上并不反映依赖项的真正处理方式--例如,即使没有这样的文件,它们也包括了本地 deps.edn。
谢谢。这很有趣,我想文档并没有真正同步。这有点可惜,因为这在一个没有外部互联网/maven 访问的企业环境中,这移除了调整安装以满足每个人“自动成功”的能力。

在这相同的线上,其他潜在的改进包括
- 允许自定义下载 URL(例如通过环境变量)或指定一个离线的 tar 包进行安装
- 提供一个不需要 root 的本地安装选项。这也可以通过查找 CLJ_HOME 或类似的环境变量来实现。

...