9

假设我有工件“mylibrary-5.2.jar”和“mylibrary-5.3.jar”代表我们的项目为我们的其他项目之一创建和发布的库的 5.2 和 5.3 版本。

Artifactory 是否支持拥有每个这些工件的多个“版本”来表示在发布期间执行的不同构建以构建此工件?

例如,为了生成“mylibrary”的 5.2 版本(即工件:mylibrary-5.2.jar )的最终版本,我们进行了 3 次构建,以获得通过了集成环境自动化测试和用户验收测试的版本。

因此,有三个独立的构建为 5.2 版生成了三个独立的工件。我们希望能够保留并可能在以后调用这些不同构建的工件(用于测试等)。

为了做到这一点,以下哪个选项会起作用?

  1. 将工件捕获为单独的工件,即 build-5.2-b1.jar(构建 1 的工件)、build-5.2-b2.jar(构建 2 的工件)、build-5.2-b3.jar(构建 3 的工件)和 build- 5.2.jar(最终生产版本;与构建 3 匹配)

  2. 捕获一个名为“build-5.2.jar”的单个工件,该工件具有捕获构建 1 到 3 的工件的版本,并且可以稍后按版本号调用。

  3. 我们没有考虑过的其他一些选择,但应该
4

1 回答 1

6

问题本身与 Artifactory 关系不大,因为它可以处理任何工件;但推荐的方式通常是您第一个建议的变体;也就是说,保留每个构建的单独快照,直到您对结果满意并生成单个 release-version

例如,每次开发/质量保证/集成迭代都会以以下形式生成工件:

artifactName-1.0-${TIMESTAMP}.jar

每个都有不同的名称(可能还有内容),因此是可追溯的。

一旦迭代完成,并且您准备好发布工件,请以以下形式生成它:

artifactName-1.0.jar

该工件代表最终发布的版本。


快照在 Java 世界中非常普遍,被MavenIvy广泛使用,也是持续集成最基础的概念之一

于 2012-08-08T16:03:36.553 回答