2024 年 Clojure 状态调查! 中分享您的想法。

欢迎!请参阅 关于 页面了解更多关于该功能的信息。

+4
tools.deps

https://dev.clojure.org/jira/browse/TDEPS-9 中添加了对 Maven 仓库凭据的支持,但仅允许在默认位置 (~/.m2/settings.xml 或与 Maven 安装捆绑的 settings.xml) 中的 settings.xml。

允许用户指定替代 Maven 设置的路径,可以帮助在共享环境中(例如需要隔离构建的 CI 服务器)。这可能可以通过一个新的可选键 :mvn/settings 来实现。如果您感兴趣,我很乐意提出一个补丁。

或者,支持 TDEPS-9 中 Thomas Spellman 的建议(允许在 deps.edn 中指定仓库凭据)可以解决相同的问题,并且具有不需要单独设置文件的好处。

7 个回答

0

评论由:alexmiller 发布

我认为为这制造特殊的事物没有意义。Maven 是做什么的?我们能尊重这一点吗?

0

评论由:cbowdon 发布

感谢您关注此事。Maven 允许通过命令行参数传递 settings.xml 的替代路径,因此为 clj 提供额外的 -Smaven-settings 选项可能是合适的。

0

评论人:tsachev

我认为tools.deps使用的maven设置构建器也支持使用系统属性{{org.apache.maven.user-settings}}来自定义settings.xml文件的路径

clj -J-Dorg.apache.maven.user-settings=/my/settings.xml

0

评论由:cbowdon 发布

感谢您的建议,Vladimir。不幸的是,这个系统属性在Maven 3中似乎不受支持:https://issues.apache.org/jira/browse/MNG-5199 。我本人仍然尝试了它,无论是使用clj还是mvn,但都没有成功。

0

评论人:tcrawley

{{org.apache.maven.user-settings}} sysprop(链接: https://github.com/apache/maven/blob/maven-3.5.2/maven-core/src/main/java/org/apache/maven/settings/MavenSettingsBuilder.java#L38 文本:受支持)是由tools.deps使用的maven库版本(目前是3.5.2)支持的。指定它不起作用的原因是Clojure脚本没有将{{-J}}选项(脚本中的{{$java_opts}})传递给解析依赖项(链接: https://github.com/clojure/brew-install/blob/1.9.0/src/main/resources/clojure#L301 文本:解析依赖项的Java调用)。如果您修改脚本以直接设置该sysprop或传递JVM选项,您可以看到sysprop正在起作用。我并不是主张将所有的JVM opts传递到解析调用是一种解决方案,只是确认这个sysprop确实可以工作的一种方法。


编辑
已删除评论*
0
by

评论由:alexmiller 发布

是的,不想在类路径生成调用中传递所有 JVM 选项。需要创建一种特定方法,或者以不同的方式传递此属性。

0
by
参考:[https://clojure.atlassian.net/browse/TDEPS-99](https://clojure.atlassian.net/browse/TDEPS-99)(由 alex+import 报告)
...