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 现在作为其分发的一部分“内置”系统配置,而“system”位置的实 ас deps.edn 文件仅用于向后兼容,现在实际上并未使用。

无论如何,您绝对不应该修改“system”版本,而只能修改每个用户的或每个项目的版本。

我也非常确信,config_paths 和 :config-files 只是为了复古原因现在提供的,并不实际反映依赖项是如何被真正处理的 – 例如,即使在没有任何这种文件存在的情况下,它们也包括一个本地的 deps.edn。
谢谢。这点很有趣,我想文档并没有完全同步。这有点遗憾,因为这将丧失在企业环境中(没有外部互联网/maven 访问)调整安装以让每个人都能“一劳永逸”的能力。

沿着这些方向的其他潜在改进包括
- 允许自定义下载 URL(例如,通过环境变量)或指定一个离线 tar 包进行安装
- 提供一个不需要 root 的本地安装选项。这也可以通过查找 CLJ_HOME 或类似的环境变量来实现。
by
我们在工作中会使用 CLJ_CONFIG 环境变量来指向包含 deps.edn 的单仓库目录,该文件基本替代了用户级别的配置。这样,我们为所有开发者提供了一个一致的定制化环境。
...