4

我们有一个内部 Java 库,它是许多其他项目的依赖项,我们称之为our-commons-<version>.jar. 我们或多或少喜欢遵循语义版本控制的想法,所以:

  • 当我们进行向后不兼容的 API 更改时,主要编号会发生变化;
  • 当我们进行向后兼容的 API 更改时,会发生较小的数字更改;
  • 每次我们进行构建时,补丁号都会更改(所以对我们来说,它实际上是一个构建号);但我们真的只会在修复错误时构建,所以它足够接近真实semver

目前,我们只发布到 Artifactory 上的 SNAPSHOT 目录,并覆盖每次构建时存在的 JAR。具体来说,我们的项目仓库位于:

http://arty/artifactory/simple/our-libs-snapshots/our-commons/snapshot

机器http://arty/artifactory上运行的 Artifactory 服务在哪里,实际 repo的名称在哪里,我们的 lib 的名称在哪里。目录是所有 Bamboo 构建发布到的地方,就像我说的那样,覆盖每个构建的 JAR 。我们正在硬编码我们的构建以生成每个构建。artyour-libs-snapshotsour-commons/snapshotour-commons-0.1-SNAPSHOT.jar

要进行此发布,我将以下任务配置为 Bamboo 计划的一部分our-commons

Artifactory Deploy Task
=======================
Artifactory Serverl URL:        http://arty/artifactory
Target Repository:              our-libs-snapshots
Deployer Username:              myadmin
Deployer Password:              ******
Edit Published Artifacts:       dist/our-commons-0.1-SNAPSHOT.jar=>our-commons/snapshot
Capture & Publish Build Info:   yes (checked)

我试图弄清楚如何让 Bamboo 和 Artifactory 与我们的 semver 风格一起工作。这样我们第一次构建时,它将产生:

http://arty/artifactory/simple/our-libs-snapshots/our-commons/1.0.0/our-commons-1.0.0.jar

我们第二次构建时,它将产生:

http://arty/artifactory/simple/our-libs-snapshots/our-commons/1.0.1/our-commons-1.0.1.jar

等等。然后,我们将能够手动指示何时要增加次要编号,在这种情况下,补丁编号将重新开始:

http://arty/artifactory/simple/our-libs-snapshots/our-commons/1.1.0/our-commons-1.1.0.jar

主要编号的处理相同,但递增会重置次要编号补丁编号。

不确定我们应该在哪里添加这些配置,或者它们实际上会是什么样子。有任何想法吗?

4

1 回答 1

3

您要实现的目标称为唯一快照(见下文)。使用semverpatch的版本是错误的(补丁版本是第三个数字,例如3 是补丁版本)。10.0.3

使用 Maven(或 Gradle 或 Ivy)和 Artifactory 时,您可以立即使用此功能。您需要设置 Artifactory 存储库以使用存储库设置中的唯一快照设置快照清理(通常保留 3 到 5 个最后的快照是一个好习惯)。

于 2014-06-12T16:10:29.310 回答