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

欢迎!请参阅关于页面了解更多此平台的信息。

0投票
tools.deps
目前deps.edn中{{:mvn/repos}}映射允许用户指定外部仓库的id和url,但它不允许对[任何其他设置|http://maven.apache.org/pom.html#Repositories]进行自定义。我特别希望能够禁用{{<snapshots>}}仓库,并将{{<updatePolicy>}}设置为{{never}},无论是快照还是发布版本仓库。

关于这一点有一些早期的讨论[TDEPS-97]。

为了使这一点更加具体,这里是我想象的deps.edn的这个部分的示例


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


或者,更简单但不那么类型的版本可以使用字符串到字符串的映射来表示快照/发布部分


 :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投票
by
...