Methods 梯度方法与任务之间的沟通

Methods 梯度方法与任务之间的沟通,methods,gradle,task,Methods,Gradle,Task,我似乎无法使我的集合从该方法进入GenerateAddressTasks可以对其进行迭代的状态。至少在某种程度上我不能访问它。我尝试了属性、参数和返回值。这幅画怎么了?我似乎对Groovy或Gradle中的信息传递方式有一些误解。。。或者两者兼而有之。解释涉及的范围可能会有所帮助。这是一个子项目 buildscript{ ... } ext.collectionOfObjects = [] class WadleProfile { def File wadleFile; def w

我似乎无法使我的集合从该方法进入GenerateAddressTasks可以对其进行迭代的状态。至少在某种程度上我不能访问它。我尝试了属性、参数和返回值。这幅画怎么了?我似乎对Groovy或Gradle中的信息传递方式有一些误解。。。或者两者兼而有之。解释涉及的范围可能会有所帮助。这是一个子项目

buildscript{
...
}
ext.collectionOfObjects = []

class WadleProfile {
   def File wadleFile;
   def wadlArgs;
}

ext.factoryMethod = { 
  //supposed to create and add WadleProfiles to collectionOfWadleProfiles
}
compileJava {
  doFirst { factoryMethod() }
}

task generateWadlTasks {

    println "Executing generateWadlTasks"

    project.ext.collectionOfObjects.each { wadlProfile ->

        task("wadl2java" + wadlProfile.id, type: JavaExec, dependsOn: 'classes') {
            main = project.wadlBaseMain
            ...
        }
    }
}

您想做什么?factory方法创建一个仅数据对象的集合(ArrayList)。其中每一个都表示关于特定WADL文件的所需信息。对于列表中的每个对象,将根据文件名使用其名称创建任务。。。除了某些原因,我无法将信息从方法传输到任务。我发现了一个逻辑错误,即我必须使用配置构建类路径。你知道没有办法调用由另一个任务创建的任务吗?不,我没有。其他人建议将其作为编写冗余任务的解决方案:-(