【问题标题】:Maven return artifact hash from Nexus when deploying部署时 Maven 从 Nexus 返回工件哈希
【发布时间】:2019-05-11 08:08:26
【问题描述】:

我对 Maven 和 Nexus 非常陌生,并且在将 Github 提交链接到 Nexus 人工制品时遇到问题。

我需要能够将分支名称或提交 ID 映射到 Nexus 中构建的特定工件,因为我希望能够为代码存储库上的特定分支提取特定包。我们使用 Jenkins 作为我们的 CI 工具。

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

我对这个方法有很多问号,但现在最大的一个是:

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

这种将 Github 提交映射到人工制品的方法是否有意义?

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

谢谢

【问题讨论】:

    标签: git maven tags commit nexus


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-01
      • 1970-01-01
      • 2013-03-06
      • 2012-05-19
      • 2012-02-04
      • 1970-01-01
      • 2013-03-07
      • 2018-04-07
      相关资源
      最近更新 更多