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

欢迎!请参阅 关于页面 了解更多关于如何使用此网站的信息。

0
tools.deps
在 deps.edn 中,当前 {{:mvn/repos}} 映射允许用户指定外部仓库的 id 和 url,但它不允许对任何其他设置([任何其他设置|http://maven.apache.org/pom.html#Repositories】)进行定制。我特别希望能够禁用 {{<snapshots>}} 仓库,并将 {{<updatePolicy>}} 设置为 {{never}},无论是 snapshot 还是 release 仓库,或者两者都这样。

[TDEPS-97] 中有一些早期的讨论。

为了使这一点更加具体,以下是我认为 deps.edn 这部分可能看起来像的样子


 :mvn/repos
 {"my-repo"
  {:url "s3p://my-bucket/maven/"
   :releases {:update-policy "never"}}
   :snapshots {:enabled false}}}


或者,一个更简单但类型安全性较低的版本可以使用字符串到字符串映射来简单地处理 snapshot/release 部分


 :mvn/repos
 {"my-repo"
  {:url "s3p://my-bucket/maven/"
   :releases {"updatePolicy" "never"}}
   :snapshots {"enabled" "false"}}}

3 条答案

0

由 timgilbert 发表评论

Maven 由于 pom.xml 中的一个部分包含重复条目而给出了一些警告;{{0001-Removing-duplicate-entry-from-pom.xml.patch}} 修复了这些问题(这与补丁或票据无关)。

0

由 timgilbert 发表评论

{{0002-Implemented-snapshots-and-releases-configuration.patch}} 在 deps.edn 中 {{:mvn/repos}} 键下面实现了 <snapshots><releases> 配置。

此实现遵循上述第一个例子,其中 {{:releases}} 包含一个映射,该映射可以包含 {{:update-policy}}、{{:checksum-policy}} 或 {{:enabled}} 键。

我还添加了一些关于 pom 生成功能的初步测试,至少是其仓库部分。它们通过在 {{gen.pom}} 命名空间中测试私有函数来进行一点欺骗,通过在生成的 XML 上进行字符串暴力比较来工作,但至少它们易于阅读。如果需要,我很乐意重新编写它们以使其更正确/更健壮。

如果这个格式看起来不错,我可以向 clojure-site 仓库提交一个 PR 来更新 tools.deps 文档,提到这些新键。

0
参考: https://clojure.atlassian.net/browse/TDEPS-101 (由 timgilbert 报告)
...