编写自定义插件并将其包含在构建脚本
中很容易apply from: "utilities.gradle"
出于测试目的,此文件与build.gradle在同一目录中
从build.gradle调用utilities.gradle中定义的任务可以毫无困难地工作。 在实用程序中,gradle也是一个定义的插件 - 从build.gradle配置它只是起作用。
但是如果我在utilities.gradle中定义一个自定义任务调用它没问题但是如果我想在build.gradle中使用那个自定义任务它会说
> Could not find property 'GreetingTask' on root project 'TestGradle'.
utilities.gradle:
task hello(type: GreetingTask)
class GreetingTask extends DefaultTask {
@TaskAction
def greet() {
println 'hello from GreetingTask'
}
}
的build.gradle
task hellox(type: GreetingTask)
好的......我在这里阅读了文档:http://www.gradle.org/docs/current/userguide/custom_tasks.html
它说自定义任务在外面不可见...... 但接下来......如何与团队分享自定义任务,而无需为所有事情制作Jar。 我想要的是将utilities.gradle放在网络驱动器上并与另一个共享。
请帮助
答案 0 :(得分:14)
有一个特殊的$rootDir/buildSrc
目录,它是自己的构建。此构建生成的所有类都可用于“main”构建中的所有构建脚本。 buildSrc
版本具有默认build.gradle
,但您可以添加自己的版本。默认情况下,预期在src/main/java
下使用Java类,在src/main/groovy
下使用Groovy类。您可以在Gradle User Guide中详细了解buildSrc
。
要在多个版本之间共享类,可以使用另一个发布Jar的插件项目。