Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/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
Jenkins批量或多触发器发布maven插件_Maven_Jenkins_Release Management - Fatal编程技术网

Jenkins批量或多触发器发布maven插件

Jenkins批量或多触发器发布maven插件,maven,jenkins,release-management,Maven,Jenkins,Release Management,我需要在jenkins中为多个项目批量触发maven发布插件。它们互不依赖,其中一些具有模块 在jenkins中,您可以一个接一个地发布它们,但我正在寻找一种方法来一次性触发所有事件,并可能使用相同的发布号标记所有事件 例如 然后项目A..N将与单个构建触发器一起发布。。有类似的吗 我知道multi-and-bulk插件,但他们似乎没有构建maven版本 /谢谢我正在看下面的一个。。似乎有帮助。。 我正在看下面的一个。。似乎有帮助。。 根据可以建立作业和参数列表,然后并行运行作业: stage(

我需要在jenkins中为多个项目批量触发maven发布插件。它们互不依赖,其中一些具有模块

在jenkins中,您可以一个接一个地发布它们,但我正在寻找一种方法来一次性触发所有事件,并可能使用相同的发布号标记所有事件

例如

然后项目A..N将与单个构建触发器一起发布。。有类似的吗

我知道multi-and-bulk插件,但他们似乎没有构建maven版本


/谢谢

我正在看下面的一个。。似乎有帮助。。

我正在看下面的一个。。似乎有帮助。。

根据可以建立作业和参数列表,然后并行运行作业:

stage('testing') {
  def jobs = [:]

  [1,2,3,4,5].each{
    i -> jobs["Test${i}"] = {
        build job: 'Test', 
        parameters: [string(name: 'theparam', value: "${i}")],
        quietPeriod: 2
    }
  }
  parallel jobs
}
在这里,它使用数字作为名称,但您可以使用任意名称

您可以更复杂地将要发布的作业列表下载到文件中,并运行文件中指定的作业:

stage ('download release spec') {
    dir('${WORKSPACE}') {
        sh 'curl -LO https://my.server.com/path/$MASTER_RELEASE/jobs.txt'
    }
}
stage('run jobs in spec') {
    dir('${WORKSPACE}') {
        // read our one line of jobs to run and split it into an array of jobs to run
        def fileData = readFile('jobs.txt')
        def names = fileData.tokenize( ',' )

        // short hand for creating an empty map
        def jobs = [:]

        // https://stackoverflow.com/a/51306175/329496
        names.each{
            i -> jobs["${i}"] = {
                println "parallel build job: $i"
                build job: "${i}"
            }
        }
        parallel jobs
    }
} 
第一个代码片段显示了如何将参数传递给构建。Groovy有一些用于合并列表的隐藏函数,例如,可以很容易地将jobs.txt和params.txt合并到一个可以运行的列表中。每个函数都可以提取作业名称及其参数。您可以将一些sed、awk或python放入第一阶段,以计算结构化发布文档中的所有文件。这样,您的构建就可以下载一个格式良好的发布文档,并将其转换成一堆作业和发布参数来运行

根据可以构建作业和参数列表,然后并行运行作业:

stage('testing') {
  def jobs = [:]

  [1,2,3,4,5].each{
    i -> jobs["Test${i}"] = {
        build job: 'Test', 
        parameters: [string(name: 'theparam', value: "${i}")],
        quietPeriod: 2
    }
  }
  parallel jobs
}
在这里,它使用数字作为名称,但您可以使用任意名称

您可以更复杂地将要发布的作业列表下载到文件中,并运行文件中指定的作业:

stage ('download release spec') {
    dir('${WORKSPACE}') {
        sh 'curl -LO https://my.server.com/path/$MASTER_RELEASE/jobs.txt'
    }
}
stage('run jobs in spec') {
    dir('${WORKSPACE}') {
        // read our one line of jobs to run and split it into an array of jobs to run
        def fileData = readFile('jobs.txt')
        def names = fileData.tokenize( ',' )

        // short hand for creating an empty map
        def jobs = [:]

        // https://stackoverflow.com/a/51306175/329496
        names.each{
            i -> jobs["${i}"] = {
                println "parallel build job: $i"
                build job: "${i}"
            }
        }
        parallel jobs
    }
} 
第一个代码片段显示了如何将参数传递给构建。Groovy有一些用于合并列表的隐藏函数,例如,可以很容易地将jobs.txt和params.txt合并到一个可以运行的列表中。每个函数都可以提取作业名称及其参数。您可以将一些sed、awk或python放入第一阶段,以计算结构化发布文档中的所有文件。这样,您的构建就可以下载一个格式良好的发布文档,并将其转换成一堆作业和发布参数来运行