欢迎!有关如何操作,请参阅关于页面以了解更多信息。
Maven仓库凭据的支持是在https://dev.clojure.org/jira/browse/TDEPS-9中添加的,但仅允许在默认位置( ~/.m2/settings.xml 或与Maven安装捆绑的设置文件)中有一个settings.xml文件。
允许用户指定替代Maven设置文件的路径可以帮助在共享环境中(例如,CI服务器上应隔离构建的情况)。这可能可以通过一个新的可选密钥:mvn/settings来完成。如果您感兴趣,我很乐意提出一个补丁。
:mvn/settings
或者,支持TDEPS-9中的Thomas Spellman的建议(允许用户在deps.edn中指定仓库凭据)也能解决这个问题,并且有无需单独设置文件的优点。
由:alexmiller 评论
我认为为这个特别定制事情没有意义。Maven做什么?我们能否尊重这一点?
由:cbowdon 评论
感谢您查看这一点。Maven允许通过命令行参数传递替代路径到settings.xml,因此也许为clj添加一个额外的-Smaven-settings选项是合适的。
-Smaven-settings
评论由:tsachev
我认为tools.deps使用的maven settings builder也支持使用系统属性{{org.apache.maven.user-settings}}自定义settings.xml文件的位置。
clj -J-Dorg.apache.maven.user-settings=/my/settings.xml
感谢您的建议,Vladimir。不幸的是,这个系统属性似乎在Maven 3中不受支持:[https://issues.apache.org/jira/browse/MNG-5199](https://issues.apache.org/jira/browse/MNG-5199) 。不过我已经亲自测试了,无论是使用 clj 还是 mvn,都没有成功。
评论由: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确实有效的一种方法。
是的,不想将所有 JVM 选项传递给类路径生成调用。需要创建一种专门的方式来实现这一点,或者以不同的方式传递这个属性。