部署时Nexus的Maven返回工件哈希值

时间:2018-12-10 12:14:10

标签: git maven tags commit nexus

我对Maven和Nexus还是很陌生,并且在将Github Commits与Nexus艺术品链接方面陷入困境。

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

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

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

在使用Maven构建和将人工制品部署到Nexus时是否可以“返回”哈希。 “返回”只是一种以某种方式获得它并在以后的构建过程中将其用于curl请求中的能力。

这种将Github映射到文物的方法有意义吗?

如果是的话,有人对哈希问题有任何想法吗?

谢谢

1 个答案:

答案 0 :(得分:0)

您必须回答的第一个问题是您是部署 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 工件中生成快照。)