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

欢迎!请查看关于页面以了解更多关于此的工作方式的信息。

0
tools.deps
在 deps.edn 中,{{:mvn/repos}} 映射目前允许用户指定外部仓库的 id 和 url,但它不允许自定义[任何其他设置|http://maven.apache.org/pom.html#Repositories]。我特别希望能禁用 {{<snapshots>}} 仓库,并且将 snapshot/release 仓库中的 {{<updatePolicy>}} 设置为 {{never}}。

在 [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-generation这类测试添加了一些基本测试,至少是其仓库部分。它们通过测试{{gen.pom}}命名空间中的私有函数并对其进行简单字符串比较来工作,虽然这种做法有些欺骗性质,但是至少这些测试很简单易懂。如果需要,我很乐意对它们进行重构,使其更加正确和健壮。

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

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