Jenkins + Maven - 如何在发布之前执行shell脚本:执行清理项目

时间:2016-03-18 10:06:39

标签: maven jenkins maven-release-plugin

我有一个Maven项目,在mvn包上使用maven-assembly-plugin生成一个zip文件

MyProy
|--pom
|--src/...
|--target
     |---MyProy-something-1.0.0-SNAPSHOT-zip (contains /1.0.0-SNAPSHOT/...)

我创建了一个Jenkins作业,并将shell脚本执行配置为后续步骤。此脚本将zip复制到文件夹(/ something)并解压缩

|-/something
     |---1.0.0-SNAPSHOT
             |---...

这适用于构建。但是,当我发布一个版本时,我想做同样的事情。我安装了Jenkins发布插件,在“configure release build”中我添加了这个任务:

  1. 发布版本之前 - > Maven任务mvn release:prepare
  2. 成功发布版本后 - > Maven任务mvn release:perform
  3. 成功发布版本后 - >执行shell脚本 - 复制zip并解压缩。
  4. 我看到mvn release:perform正确执行,例如版本1.0.0,但问题是当脚本(3.)启动时,它适用于下一个开发版本(1.0.1-SNAPSHOT)发行版本(1.0.0)。

1 个答案:

答案 0 :(得分:0)

这就是我设法解决问题的方法:

  1. 在发布版本之前

    1. mvn release:prepare
  2. 成功发布后

    1. mvn release:执行
    2. mvc scm:checkout -DscmVersion = $ {releaseVersion} -DscmVersionType = tag
    3. -f $ {WORKSPACE} / target / checkout clean install
    4. 使用copy和unzip执行shell脚本
  3. 总结一下,发布后:执行我签出全新标签,在下载标签的位置执行全新安装,最后我执行复制zip并解压缩的脚本。