尝试在数组中循环并将每个值传递给gradle任务

尝试在数组中循环并将每个值传递给gradle任务,gradle,groovy,jenkins-job-dsl,Gradle,Groovy,Jenkins Job Dsl,我正在尝试做一系列应该很简单的事情,但是却给我带来了很多痛苦。在较高的层次上,我希望循环一个数组,并将每个值传递给一个gradle任务,该任务应该返回自己的数组。然后我想使用这个数组来设置一些Jenkins配置 我尝试了多种方法来实现这一点,但我目前的设置如下: project.ext.currentItemEvaluated = "microservice-1" task getSnapshotDependencies { def item = currentItemEvaluate

我正在尝试做一系列应该很简单的事情,但是却给我带来了很多痛苦。在较高的层次上,我希望循环一个数组,并将每个值传递给一个gradle任务,该任务应该返回自己的数组。然后我想使用这个数组来设置一些Jenkins配置

我尝试了多种方法来实现这一点,但我目前的设置如下:

project.ext.currentItemEvaluated = "microservice-1"

task getSnapshotDependencies {
    def item = currentItemEvaluated
    def snapshotDependencies = []

    //this does a load of stuff like looping through gradle dependencies,
    //which means this really needs to be a gradle task rather than a 
    //function etc. It eventually populates the snapshotDependencies array.

    return snapshotDependencies
}

jenkins {
    jobs {
        def items = getItems() //returns an array of projects to loop through
        items.each { item ->
           "${item}-build" {
                project.ext.currentItemEvaluated = item
                def dependencies = project.getSnapshotDependencies
                dsl {
                    configure configureLog()
                    //set some config here using the returned dependencies array
             }
         }
     }
}
我真的无法改变jenkins block的设置方式,因为它已经很成熟了,所以如果可能的话,我需要在这个结构中工作

我尝试了许多方法试图将变量传递到任务中——这里我使用的是项目变量。问题似乎是任务在jenkins块之前计算,我无法确定如何使用新设置的
currentItemEvaluated
变量再次正确计算任务


还有什么我可以尝试的吗?

经过更多的研究,我认为这里的问题是Gradle中没有“调用任务”的概念。Gradle任务只是一个任务及其依赖关系的图表,因此它们将按照只遵循这些依赖关系的顺序进行编译

我最终不得不在不调用Gradle任务的情况下解决这个问题(我有一个构建任务,将相关数据打印到一个文件中,我的jenkins块从该文件中读取)