maven-release-plugin准备与执行

时间:2013-09-04 15:37:08

标签: jenkins maven-release-plugin

我希望在Jenkins中设置发布工作。我们使用Jenkins,Maven 3和Perforce进行源代码管理,使用Nexus进行存储库管理。

我已经设置了maven目标发布的作业:准备和发布:执行,但是我注意到编译和测试发生两次时构建时间加倍。我目前对maven-release-plugin准备和执行目标的理解如下:

maven-release-plugin准备:

  1. 确保不对工作区中的文件进行本地修改
  2. 编辑POM以设置发布版本
  3. 执行准备目标,默认为clean verify,以确保代码可以编译并通过测试。
  4. 提交修改后的POM
  5. 创建VCS标记
  6. 将POM的版本增加到下一个开发版本并将这些POM提交到VCS
  7. 此外,还使用VCS标记以及发布和开发版本信息

    创建了release.properties文件

    maven-release-plugin执行

    1. 使用release.properties中的VCS标记检查源代码的新副本到target / checkout的默认位置
    2. 执行deploy / deploy-site的目标,具体取决于项目是否具有分发管理
    3. 因此,为了停止加倍构建时间以及保持构建完整性,我正在考虑执行以下操作:

      1. 让jenkins结帐来自源存储库
      2. 的最新源代码的新副本
      3. 将版本插件的prepareGoals配置元素配置为clean deploy
      4. 只需运行release:prepare
      5. 通过上述内容,我认为我可以将两个(prepareperform)合并为一个步骤,并节省构建周转时间。我们通常总是使用一个构建环境来构建一个堆栈(Java 6等),因此只要代码在准备步骤中成功编译并通过测试,就可以将工件部署到Nexus。

        我主要是在寻找反对的想法,上述情况可能会出错,这样我就可以从眼睛失明中得到拯救。

        由于

1 个答案:

答案 0 :(得分:0)

这是一个maven问题,而不是詹金斯问题。

在maven中,准备和执行操作会做两件事。一个用于快照,另一个用于发布的标记版本。一个部署到您的snapshotRepository,另一个部署到您的发布存储库。一个创建下一个快照构建,一个创建当前版本。

它们用于不同的目的。两者都可能以自己的方式失败,这取决于你的maven&存储库配置。因此需要同时运行它们。