目前,我在多项目设置中的顶级build.gradle中定义了一些实用程序功能,例如:
def utilityMethod() {
doSomethingWith(project) // project is magically defined
}
我想将此代码移动到一个插件中,这将使应用插件的项目中的utilityMethod可用。我怎么做?它是project.extension吗?
答案 0 :(得分:3)
这似乎可以使用:
task HelloTask << {
foo.sayHello("DOM")
}
c:\plugintest>gradle -q HelloTask
Hello DOM
然后在客户端build.gradle文件中,您可以执行以下操作:
{{1}}
https://docs.gradle.org/current/userguide/custom_plugins.html
答案 1 :(得分:2)
我最近实现了这一点,Github提供了一个完整的示例。
注射基本归结为
target.ext.utilityMethod = SomeClass.&utilityMethod
<强>请注意:强>
此方法可能与其他插件冲突,因此您应该考虑是否使用静态导入。
答案 2 :(得分:-1)