Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
詹金斯&x2B;Maven-如何在发布前执行shell脚本:perform清理项目_Maven_Jenkins_Maven Release Plugin - Fatal编程技术网

詹金斯&x2B;Maven-如何在发布前执行shell脚本:perform清理项目

詹金斯&x2B;Maven-如何在发布前执行shell脚本:perform清理项目,maven,jenkins,maven-release-plugin,Maven,Jenkins,Maven Release Plugin,我有一个Maven项目,它使用mvn包上的Maven assembly插件生成一个zip文件 MyProy |--pom |--src/... |--target |---MyProy-something-1.0.0-SNAPSHOT-zip (contains /1.0.0-SNAPSHOT/...) 我创建了一个Jenkins作业,并将shell脚本执行配置为post步骤。此脚本将zip复制到文件夹(/something)并将其解压缩 |-/something |---

我有一个Maven项目,它使用mvn包上的Maven assembly插件生成一个zip文件

MyProy
|--pom
|--src/...
|--target
     |---MyProy-something-1.0.0-SNAPSHOT-zip (contains /1.0.0-SNAPSHOT/...)
我创建了一个Jenkins作业,并将shell脚本执行配置为post步骤。此脚本将zip复制到文件夹(/something)并将其解压缩

|-/something
     |---1.0.0-SNAPSHOT
             |---...
这对于构建非常有效。但是,当我发布一个版本时,我也希望这样做。我安装了Jenkins发布插件,并在“配置发布版本”中添加了以下任务:

  • 发布前构建->Maven任务
    mvn发布:准备
  • 成功发布后构建->Maven任务
    mvn发布:执行
  • 成功发布后,构建->执行shell脚本-复制zip并解压缩

  • 我看到了
    mvn发行版:正确执行
    execute,例如1.0.0版,但问题是,当启动脚本(3)时,它将应用于下一个开发版本(1.0.1-SNAPSHOT),而不是发行版(1.0.0)。

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

  • 发布前构建

  • mvn发布:准备
  • 成功发布构建后

  • mvn发布:执行
  • mvc scm:checkout-DscmVersion=${releaseVersion}-DscmVersionType=tag
  • -f${WORKSPACE}/target/checkout干净安装
  • 通过复制和解压执行shell脚本

  • 总而言之,发布后:执行我签出全新的标记,在下载的标记位置执行一个干净的安装,最后执行复制zip并解压缩它的脚本。

    何处配置:发布构建后执行shell脚本?