gpt4 book ai didi

gradle - 常规构建脚本类可以直接访问Gradle项目吗?

转载 作者:行者123 更新时间:2023-12-03 03:30:57 26 4
gpt4 key购买 nike

groovy类(位于buildSrc/src/main/groovy中)可以直接访问项目吗,还是必须显式传递项目?

我可以通过显式地将其作为方法参数传递来访问该项目,但是我不想传递它。例如,我希望能够通过静态方法调用来访问该项目。 。这种隐式访问可能吗?

显式访问

import org.gradle.api.Project

class MyClazz {
static void foo(Project project) {
println project.version
}
}

build.gradle中的任务
task foo() << {
MyClazz.foo(project)
}

通过静态方法调用的隐式访问(这是所需的访问模式)
import org.gradle.api.Project

class MyClazz {
static void foo() {
println Project.getProject().version
}
}

build.gradle中的任务
task foo() << {
MyClazz.foo()
}

最佳答案

您可以使用Groovy扩展方法来执行此操作。

这是一个独立的示例,但也应该与Gradle一起使用:

class Project {
// we add this method dynamically
//static getProject() { [ version: 2.3 ] }
}

class MyClazz {
static void foo() {
println Project.getProject().version
}
}

class Gradle {

static def main(args) {
Project.metaClass.static.getProject = { [ version: 4.2 ] }
MyClazz.foo()
}

}

关于gradle - 常规构建脚本类可以直接访问Gradle项目吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37077208/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com