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

欢迎!请参阅 关于 页面以了解更多有关功能的信息。

+4
tools.deps

https://dev.clojure.org/jira/browse/TDEPS-9 中增加了对 Maven 仓库凭据的支持,但仅允许在默认位置(~/.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

评论者: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

{{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))以解析依赖。如果您修改脚本以直接设置该 sysprop 或传递 JVM 选项,您就可以看到 sysprop 有效。我不是在提倡将所有 JVM 选项传递给解析调用,而是一种确认这个 sysprop 确实有效的方法。


编辑
*已删除评论*
0

由 alexmiller 添加的评论

是的,不想将所有 JVM 选项传递给类路径生成调用。需要创建一种特定方式来执行该操作或以不同方式传递此属性。

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