gpt4 book ai didi

maven - 从 Maven 快照中获取生成的唯一版本

转载 作者:行者123 更新时间:2023-12-01 03:46:29 25 4
gpt4 key购买 nike

根据 the manual ,对于 Maven 3,我们被迫使用 uniqueSnapshots=true .这意味着每次部署 1.0-SNAPSHOT实际上是由一些唯一的、规范的 ID 支持的,例如1.0-20080207-230803-1 .

结果,调用 mvn deploy产生在 mvn 之前无法确定规范版本的 Artifact 可执行文件被调用。

因此,如果希望对之后生成的唯一 ID 调用任何操作,必须尝试从 mvn deploy 之后的 maven 可执行文件中提取生成的 ID。完成。

有没有这样的机制来获取唯一ID?

例如,mvn deploy将产生以下输出:

Uploading: https://oss.sonatype.org/content/repositories/snapshots/io/airlift/slice/0.11-SNAPSHOT/slice-0.11-20150220.165404-2.jar

但是好像没有办法访问ID 0.11-20150220.165404-2不解析 Maven 的输出。

示例场景: mvn build 导致一个新的(唯一的) Artifact 被推送到内部存储库管理器。完成后,我们希望通过 HTTP 推送通知以通知某个远程应用程序新的 SNAPSHOT 版本的应用程序。

尽管我们的存储库管理器允许我们查询最新的 SNAPSHOT 版本,但这与能够传递对特定版本的绝对引用不同。

最佳答案

maven-deploy-plugin 不会在系统属性中存储部署时间戳。

如果您想查看源代码(并可能提出增强请求),则此部署时间戳在类 org.apache.maven.artifact.transform.SnapshotTransformation 中计算通过方法 getDeploymentTimestamp 项目 maven-artifact-manager .

已部署 Artifact 的最终版本在方法 construcVersion 中计算: SNAPSHOTtimestamp-buildNumber 取代,其中 timestampgetDeploymentTimestamp 的结果和 buildNumber是一个增量。

应该可以用 System.setProperty("something", version) 存储这个构造的版本。 ;然后在 pom.xml 中访问它与 ${something} .

关于maven - 从 Maven 快照中获取生成的唯一版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26548698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com