Svn Maven发布过程问题(发布插件的任何替代方案)

Svn Maven发布过程问题(发布插件的任何替代方案),svn,maven,release,Svn,Maven,Release,在过去的两个月里,我一直在和Maven一起工作。我想我已经足够理解了,但还不确定:)我已经编译、安装了快照构建并部署到了我们的团队存储库中 因此,计划是为开发环境使用快照构建,一旦稳定,就告诉QA团队将快照构建用于QA,一旦QA接受构建,就将相同的构建推广到生产环境 如果发现快照构建良好,我的要求是。我要确切的生产资料。 如果我使用发布插件,issue it会标记并重建源代码,签出标记并部署它(在过程中从版本字符串中删除快照)。这里的问题是,我不能保证它与QA接受的快照构建具有相同的位 另外,我

在过去的两个月里,我一直在和Maven一起工作。我想我已经足够理解了,但还不确定:)我已经编译、安装了快照构建并部署到了我们的团队存储库中

因此,计划是为开发环境使用快照构建,一旦稳定,就告诉QA团队将快照构建用于QA,一旦QA接受构建,就将相同的构建推广到生产环境

如果发现快照构建良好,我的要求是。我要确切的生产资料。 如果我使用发布插件,issue it会标记并重建源代码,签出标记并部署它(在过程中从版本字符串中删除快照)。这里的问题是,我不能保证它与QA接受的快照构建具有相同的位

另外,我觉得标记构建是多余的,因为Jar清单有SVN修订版。因此,我总是可以回到SVN修订版,从Maven工件Jar追溯构建

所以,我的问题是,有没有一种简单的方法来促进快照构建,而这是QA团队可以接受的

  • 您可以在将快照发送给QA后立即打开分支
  • 锁定发送给QA的主分支/主干
  • 如果接受,在接受的分支/主干上使用发布插件
  • 将main上的pom升级到下一个快照,并在其上添加任何内容时与Opened branch合并
  • 您可以在将快照发送给QA后立即打开分支
  • 锁定发送给QA的主分支/主干
  • 如果接受,在接受的分支/主干上使用发布插件
  • 将main上的pom升级到下一个快照,并在其上添加任何内容时与Opened branch合并

  • 如果使用快照,就不能有“相同的位”。您可以使用完全相同的源构建位。使用版本号插件将源代码管理版本捕获到版本中。当QA喜欢时,标记该版本并生成分支。然后手动将版本号设置为所需的发布版本

    或者,停止用砖头砸自己的脚,按照预期使用发布插件

    您需要使用发布阶段。运行release插件生成一个真正的版本,带有标签,但工件被囚禁在一个暂存区域(通过Nexus Pro、Archiva的下一个版本或使用altDeploymentUrl)。让QA测试暂存区版本。如果他们愿意的话,就把这些东西推广到正式的发布区域。如果QA将其删除,请删除标签并删除暂存区域


    这样,您就可以完成对您所设想的交付的比特的测试。

    如果使用快照,您就不能拥有“相同的比特”。您可以使用完全相同的源构建位。使用版本号插件将源代码管理版本捕获到版本中。当QA喜欢时,标记该版本并生成分支。然后手动将版本号设置为所需的发布版本

    或者,停止用砖头砸自己的脚,按照预期使用发布插件

    您需要使用发布阶段。运行release插件生成一个真正的版本,带有标签,但工件被囚禁在一个暂存区域(通过Nexus Pro、Archiva的下一个版本或使用altDeploymentUrl)。让QA测试暂存区版本。如果他们愿意的话,就把这些东西推广到正式的发布区域。如果QA将其删除,请删除标签并删除暂存区域


    这样,您就可以完成对您想象中的交付部分的测试。

    我也在研究这个问题。我是一个铁杆的Maven用户,我仍然用发行版插件(特别是与Mercurial一起使用时)把头撞在墙上

    以下是我遇到的一些其他相关链接:

    最后一个仍然依赖于
    maven发布插件
    ,但至少它深入了使用它的陷阱


    我们正在考虑采用一种更简单的方法,使用我们自己的脚本来管理流程,使用Maven来更新版本号(例如,
    mvn版本:set-DnewVersion=1.1.0
    ),但实现我们自己的分支/标记/提交工作流。

    我也在研究这个问题。我是一个铁杆的Maven用户,我仍然用发行版插件(特别是与Mercurial一起使用时)把头撞在墙上

    以下是我遇到的一些其他相关链接:

    最后一个仍然依赖于
    maven发布插件
    ,但至少它深入了使用它的陷阱


    我们正在考虑采用一种更简单的方法,使用我们自己的脚本来管理流程,使用Maven来更新版本号(例如,
    mvn versions:set-DnewVersion=1.1.0
    ),但实现我们自己的分支/标记/提交工作流。

    一种方法是让CI服务器与二进制存储库一起使用。您可以完全跳过
    maven发布插件

    下面是如何使用执行的示例


    我确信,如果您使用另一台CI服务器(如Jenkins)并与另一个二进制存储库(如Nexus)一起使用,也有同样的可能性。

    一种方法是让CI服务器与二进制存储库一起使用。您可以完全跳过
    maven发布插件

    下面是如何使用执行的示例


    我确信,如果您使用另一台CI服务器(如Jenkins)以及另一个二进制存储库(如Nexus),也有同样的可能性。

    这里有一个精彩的博客,介绍了使用maven发布插件的一个相当简单的替代方案。我们将在我们的项目中使用此策略的调整,它避免了发布插件的许多问题和复杂性


    这里有一个精彩的博客,介绍了使用maven发布插件的一个相当简单的替代方案。我们将使用一个改编版本