测试分阶段发布指南

作为发布过程的一部分,工件在临时存储库中暂存,以便在投票前进行测试和评估。默认情况下,此类存储库不可用,因此要使用它们,您的项目必须适当配置。

步骤如下:

  • 将存储库或插件存储库添加到您的 POM 或设置(见下文)
  • 确保您正在使用项目中正在发布的工件版本,例如通过<version><plugin>标签中设置。
  • 测试发布
  • 如果在那里指定了存储库,则从您的 POM 中删除存储库
  • 完成测试后从本地存储库中删除工件

用于测试插件的存储库配置通常如下所示(将在投票电子邮件中提供):

  ...
  <pluginRepositories>
    <pluginRepository>
      <id>staged-releases</id>
      <url>https://repository.apache.org/content/groups/staging/</url>
    </pluginRepository>
  </pluginRepositories>
  ...

重要的是分阶段发布不会污染您的最终环境,因为如果投票失败并且再次发布,它可能会发生变化。这就是为什么需要清除本地存储库的原因,但如果您使用的是存储库管理器,清除它也很重要。以下提供了有关以已隔离工件的方式设置 Archiva 的说明。

设置 Archiva 以测试分阶段发布

这些步骤对于任何存储库管理器都是类似的——请参阅他们各自的文档以获取有关如何配置远程代理的说明。

对于 Archiva,第一步是为分阶段发布创建一个新的托管存储库。这将确保它们与您的环境保持隔离。在存储库选项卡上,使用以下设置添加一个新的托管存储库:

  • 标识符 =staged-releases
  • 名称 = 分阶段发布
  • 目录 =/path/to/repositories/staged-releases
  • 取消选中“可扫描”

接下来添加一个远程存储库,其设置类似于以下内容:

  • 标识符 =dfabulich.staged.releases
  • 名称 = dfabulich 分阶段发布
  • 网址 =http://people.apache.org/~dfabulich/staging-repo/

最后,添加一个代理连接器来连接两个存储库:

  • 托管存储库 =staged-releases
  • 远程存储库 =dfabulich.staged
  • 发布政策 =once
  • 快照策略 =never
  • 白名单 =org/apache/maven/**

然后,您可以以相同的方式从您的 POM 或设置中使用此存储库,但备用 URL 为http://localhost:8080/archiva/repository/staged-releases/.

这种方法的优点是您通常可以在之后删除整个本地存储库,并且在从 POM 中删除暂存存储库后,将不再使用工件。无需从 Archiva 本身删除存储库或工件 - 除非更新分阶段发布以进行进一步测试。

通过重用存储库或为不同的暂存存储库添加代理连接器和远程存储库,在以后测试另一个暂存版本也很容易。

如果您使用存储库镜像技术锁定环境中的存储库管理器,您将添加一个附加镜像以对应于 POM 中的附加存储库,例如:

  ...
  <mirror>
    <id>staged-releases-mirror</id>
    <url>http://localhost:8080/archiva/repository/staged-releases/</url>
    <mirrorOf>staged-releases</mirrorOf>
  </mirror>
  ...

使用设置配置文件

如果您定期测试分阶段发布并希望有一种更方便的方式将存储库添加到构建而不修改您的 POM,您可以将配置文件添加到您的~/.m2/settings.xml

  ...
  <profiles>
    <profile>
      <id>staged-releases</id>
      <pluginRepositories>
        <pluginRepository>
          <id>staged-releases</id>
          <url>https://repository.apache.org/content/groups/staging/</url>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  ...

有了这个,您可以通过简单地将插件版本更改为您在 POM 中测试的版本来激活它,然后使用以下命令运行构建:

mvn verify -Pstaged-releases

请注意,清除本地存储库以防止污染本地构建环境的条件与上述相同。