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

欢迎!有关如何操作,请参阅关于页面以了解更多信息。

+4
("../../index.php/7865/allow-specify-maven-settings-provide-credentials-directly" class="qa-q-view-what" itemprop="url">提问 tools.deps

Maven仓库凭据的支持是在https://dev.clojure.org/jira/browse/TDEPS-9中添加的,但仅允许在默认位置( ~/.m2/settings.xml 或与Maven安装捆绑的设置文件)中有一个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 settings builder也支持使用系统属性{{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](https://issues.apache.org/jira/browse/MNG-5199) 。不过我已经亲自测试了,无论是使用 clj 还是 mvn,都没有成功。

0

评论由:tcrawley

由tools.deps使用的maven lib版本(目前为3.5.2)支持的{{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](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}})到(链[https://github.com/clojure/brew-install/blob/1.9.0/src/main/resources/clojure#L301](https://github.com/clojure/brew-install/blob/1.9.0/src/main/resources/clojure#L301) 文本:解析依赖的Java调用)。如果您修改脚本以直接设置该sysprop或传递JVM选项,您将看到sysprop正在工作。我不主张将所有的JVM opts传递给解析调用作为解决方案,这只是确认此sysprop确实有效的一种方法。


编辑
已移除评论*
0

由:alexmiller 评论

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

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