繁体   English   中英

Maven 在部署时从 Nexus 返回工件哈希

[英]Maven return artifact hash from Nexus when deploying

我对 Maven 和 Nexus 非常陌生(ish),并且在将 Github Commits 链接到 Nexus 人工制品时遇到了问题。

我需要能够将分支名称或提交 ID 映射到 Nexus 中内置的特定人工制品,因为我希望能够为代码存储库上的特定分支下拉特定包。 我们使用 Jenkins 作为我们的 CI 工具。

我目前的想法是; 一旦 Maven 将人工制品部署到 Nexus,我们就可以使用已部署人工制品的哈希标记 Git Commit。 然后通过使用哈希和项目名称查询 Nexus API,我们可以获得工件的版本并通过 curl 请求获取它。

我对这种方法有很多问号,但目前最大的问题是:

在使用 Maven 构建和部署人工制品到 Nexus 时,是否可以“返回”散列。 “返回”只是能够以某种方式获取它并在稍后的构建过程中在 curl 请求中使用它。

这种将 Github 承诺映射到人工制品的方法有意义吗?

如果是这样,有没有人对哈希问题有任何想法?

谢谢

您必须回答的第一个问题是您是部署 SNAPSHOT 还是发布版本。 如果您正在部署发布版本,那么最简单的方法就是使用您正在部署的版本标记您的存储库。 如果您使用的是 Maven 版本控制:

<version>${revision}${sha1}${changelist}</version>

然后您可以通过执行以下操作来部署和标记:

export version=4.23.1.00
mvn deploy -Drevision=$version
git tag $version
git push origin $version

如果您使用的是 SNAPSHOT,那么这取决于您的 CI 设置,但 Nexus 上的最新 SNAPSHOT 应该指给定分支上的最新提交。 我们要做的一件事是为每个分支生成不同的工件 ID。 (这实际上非常重要,因为您不想在来自不同分支的同一个 Nexus 工件中生成快照。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM