【问题标题】:Jenkins + Maven - How to execute shell script before release:perform cleans the projectJenkins + Maven - 如何在发布前执行 shell 脚本:执行清理项目
【发布时间】:2016-03-18 10:06:39
【问题描述】:

我有一个 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 发布插件,并在“配置发布版本”中添加了以下任务:

  1. 发布前构建 -> Maven 任务mvn release:prepare
  2. 成功发布构建后-> Maven 任务mvn release:perform
  3. 成功发布构建后 -> 执行 shell 脚本 - 复制 zip 并解压缩。

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

【问题讨论】:

    标签: maven jenkins maven-release-plugin


    【解决方案1】:

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

    1. 发布前构建

      1. mvn 发布:准备
    2. 成功发布构建后

      1. mvn 发布:执行
      2. mvc scm:checkout -DscmVersion=${releaseVersion} -DscmVersionType=tag
      3. -f ${WORKSPACE}/target/checkout 全新安装
      4. 使用复制和解压缩执行 shell 脚本

    总而言之,在 release:perform 之后,我检查了全新的标签,在下载标签的位置执行全新安装,最后我执行复制 zip 并解压缩它的脚本。

    【讨论】:

    • 在哪里配置:发布构建后执行shell脚本?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-01
    • 2015-07-27
    • 2017-06-24
    相关资源
    最近更新 更多