Clojure 2024 年度调查 中分享您的想法!

欢迎!有关本网站的更多信息,请参阅 关于 页面。

0
工具
编辑

我在一个 RHEL7 Docker 镜像上有一个最新安装的 clojure 1.10.1.483,其中仓库在 /usr/local/lib/clojure/deps.edn(安装级配置)已被修改,以便指向我们的企业 artifactory 仓库。

然而,尽管 -Sverbose 选项表示该文件位于 config_paths 中,但如果我们不在目录本身运行,这些仓库就不会被识别。

clojure -e " (clojure-version)" 这样的命令

  • 如果在安装目录内运行,因为它将以“项目”配置识别 deps.edn,所以没有配置错误。
  • 在其他任何目录运行都会失败,报告无法连接到默认的仓库(repo1.maven.org 等),这些仓库不存在于任何检查的配置文件中。

用户级配置默认为(全部注释),因此不应产生影响,但 -Srepro 选项不起作用。

我只能得出结论,安装级配置没有被正确地识别。

对此有什么看法吗?

1 个答案

+1

已选定
 
最佳答案

我相信 tools.deps.alpha 现在将系统配置内置为其分发的部分,而“系统”位置的实际 deps.edn 文件仅用于向后兼容,现在并未实际使用。

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

我也非常确信 config_paths 和 :config-files 现在只为遗留原因提供,并不实际反映依赖项的处理方式 -- 例如,即使没有任何这样的文件存在,它们也包括本地 deps.edn。
谢谢。这很有趣,我认为文档并不完全一致。这有点遗憾,因为它消除了一个企业环境中(没有外部互联网/maven 访问)调整安装以便 everyone 的能力。

沿这些相同线条的其他潜在改进包括
- 允许自定义下载 URL(例如,通过环境变量)或指定用于安装的离线 tarball
- 提供一个不需要 root 的本地安装选项。这可以通过查找 CLJ_HOME 或类似项通过环境变量实现。
我们的工作是使用CLJ_CONFIG环境变量指向我们的monorepo中的一个目录,该目录中的deps.edn文件基本上替代了用户级别的文件。这就是我们为所有开发者提供一个一致定制化环境的方法。
...