欢迎!请查阅关于页面了解有关此功能的一些更多信息。
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。我已经亲自测试过了,无论是使用 clj 还是 mvn,都未能成功。
评论者:tcrawley
tools.deps 使用的 maven 库版本(目前为 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 文本:受支持)。指定它不起作用的理由是,{{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 的确可以工作的一种方法。
是的,不想把所有JVM选项传递给类路径生成调用。需要创建一种方法来完成这个特定的任务,或者以不同的方式传递这个属性。