如何从buildSrc访问Gradle`project`?

如何从buildSrc访问Gradle`project`?,gradle,Gradle,我在buildSrc中有以下内容: class MyClass { def doSomething() { final familyMembers = project.configurations['compile'].allDependencies.collect { dep -> dep.name } } 但是当我尝试在build.gradle中使用它时: task 'do-something' <<

我在
buildSrc
中有以下内容:

class MyClass {
    def doSomething() {
        final familyMembers = project.configurations['compile'].allDependencies.collect { dep ->
            dep.name
        }
    }
但是当我尝试在
build.gradle
中使用它时:

task 'do-something' << {
    final myObject = new MyClass()
    myObject.doSomething()
}

如何使
project
MyClass
中可见?

您必须将project作为参数传递给MyClass

例如,声明构造函数和成员变量:

class-MyClass{
私人项目
MyClass(项目){
this.project=project
}
def doSomething(){
final familyMembers=project.configurations['compile'].allDependencies.collect{dep->
副局长姓名
}
}
然后从您的项目中使用它:

    task 'do-something' << {
        final myObject = new MyClass(project)
        myObject.doSomething()
    }

task'do something'您必须将project作为参数传递给MyClass

例如,声明构造函数和成员变量:

class-MyClass{
私人项目
MyClass(项目){
this.project=project
}
def doSomething(){
final familyMembers=project.configurations['compile'].allDependencies.collect{dep->
副局长姓名
}
}
然后从您的项目中使用它:

    task 'do-something' << {
        final myObject = new MyClass(project)
        myObject.doSomething()
    }

task“做点什么”,或者编写一个插件或任务类,这两个类都可以访问
project
@PeterNiederwieser-我同意,如果类很好地“适合”新角色(插件或任务),它应该被转换成它。或者,或者写一个插件或任务类,这两个类都可以访问
project
@PeterNiederwieser-我同意,如果类很好地“适合”新角色(插件或任务),它应该被转换成它。