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

欢迎!请参阅 关于 页面了解有关此内容的更多信息。

+4
tools.deps

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

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

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

7 个答案

0

评论者:alexmiller

我认为为这个目的定制东西不是很有意义。Maven 是做什么的?我们能尊重一下它的做法吗?

0

评论者:cbowdon

谢谢您查看这个问题。Maven 允许通过命令行参数传递设置.xml的替代路径,因此给 clj 额外的 -Smaven-settings 选项可能是合适的。

0

评论人:tcrawley

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

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 选项传递给解析调用的方法是一个解决方案,而只是一个方法来证实这个 sysprop 确实是工作的。


编辑
*已移除评论*
0
by

评论者:alexmiller

是的,不想将所有JVM选项传递给classpath生成调用。将需要创建一种专门的方式来实现,或者以不同的方式传递此属性。

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