欢迎!请参阅关于页面获取更多这方面的信息。
Maven 仓库凭据的支持是在https://dev.clojure.org/jira/browse/TDEPS-9中添加的,但只允许在默认位置(~/.m2/settings.xml 或与 Maven 安装捆绑的文件)中使用 settings.xml。
允许用户指定替代 Maven 设置的路径将有助于共享环境(例如 CI 服务器,其中构建应该被隔离)。这可以通过添加一个新可选键 :mvn/settings 来实现。如果您有兴趣,我很乐意提出一个补丁。
:mvn/settings
或者支持 Thomas Spellman 在 TDEPS-9 中的建议(允许用户在 deps.edn 中指定仓库凭据)将解决相同的问题,并且有不需要单独设置文件的好处。
评论者:alexmiller
我认为为这个定制东西是不合理的。Maven 做了什么?我们能尊重它吗?
评论者:cbowdon
感谢关注这个问题。Maven 允许通过命令行参数传递 settings.xml 的替代路径,因此可能需要为 clj 添加一个额外的 -Smaven-settings 选项。
-Smaven-settings
评论由:tsachev发表
我认为tools.deps使用的maven settings builder也支持通过系统属性自定义settings.xml文件位置{{org.apache.maven.user-settings}}
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发表
{{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) 文本:受支持)是由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](https://github.com/clojure/brew-install/blob/1.9.0/src/main/resources/clojure#L301) 文本:解析依赖的java调用)。如果您修改脚本以直接设置此sysprop或传递JVM选项,您可以看到sysprop正在工作。我并不提倡将所有JVM opts传递给解析调用作为解决方案,而只是确认这个sysprop确实可以工作的一种方法。
是的,不想将所有 JVM 选项传递给类路径生成调用。需要创建一种特定方式来实现它,或者通过不同的方式传递此属性。