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