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

欢迎!请参阅关于页面以获取更多关于这是如何工作的信息。

+4
tools.deps

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

允许用户指定备用Maven设置的路径将有助于共享环境(例如,需要隔离构建的CI服务器)。这可能可以通过新附加的可选键:mvn/settings完成。如果您感兴趣,我很乐意提出一个补丁。

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

7 答案

0

评论者:alexmiller

我认为为这个制作特色东西是没有意义的。Maven做什么?我们能尊重这一点吗?

0

评论者:cbowdon

感谢您查看这一点。Maven允许通过命令行参数传递settings.xml的备用路径,因此为clj添加一个额外的-Smaven-settings选项可能是合适的。

0

评论者:tsachev

我认为工具.deps使用的maven settings builder也支持通过系统属性org.apache.maven.user-settings自定义settings.xml文件位置。

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

0

评论者:cbowdon

感谢您的建议,Vladimir。不幸的是,这个系统属性在Maven 3中不受支持:[MNG-5199](https://issues.apache.org/jira/browse/MNG-5199)。我亲自进行了测试,无论是使用clj还是mvn,都没有成功。

0

评论者:tcrawley

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


编辑
已删除评论
0

评论者:alexmiller

是的,不希望将所有 JVM 选项传递给类路径生成调用。需要创建一个特定的方法来实现这一功能,或者以不同的方式传递此属性。

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