2024 状态 Clojure 问卷调查! 中分享您的想法。

欢迎!有关如何使用的更多信息,请参阅 关于 页面。

0 投票
tools.deps
当前在 deps.edn 中的 {{:mvn/repos}} 映射允许用户指定外部仓库的 id 和 url,但不允许对 [任何其他设置|http://maven.apache.org/pom.html#Repositories] 进行任何自定义。我特别希望能够禁用 {{<snapshots>}} 仓库,并将 {{<updatePolicy>}} 设置为 {{永远}},即可在 snapshot/release 仓库中或两个仓库中任意一个中设置。

在 [TDEPS-97] 中有一小部分早期的讨论。

为了使这个问题更加具体,以下是我设想 deps.edn 这部分可能的样子:


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


或者,一个更简单但不太安全的版本可以在 snapshot/releases 部分只使用字符串到字符串的映射


 :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生成器添加了一些基本的测试,至少说是它的repo部分。它们通过测试{{gen.pom}}命名空间中的私有函数进行欺骗,并通过比较生成的XML来工作,但至少它们很容易阅读。如有需要,我很乐意重新工作,使它们更正确、更健壮。

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

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