我在哪里可以将我的自定义任务类放在Gradle中

Mik*_*rer 10 gradle

编写自定义插件并将其包含在构建脚本中很容易

apply from: "utilities.gradle"
Run Code Online (Sandbox Code Playgroud)

出于测试目的,此文件与build.gradle位于同一目录中

从build.gradle调用utilities.gradle中定义的任务可以毫无困难地工作.在实用程序中,gradle也是一个定义的插件 - 从build.gradle配置它只是起作用.

但是,如果我在utilities.gradle中定义一个自定义任务调用它没有问题,但如果我想在build.gradle中使用该自定义任务,它说

> Could not find property 'GreetingTask' on root project 'TestGradle'.
Run Code Online (Sandbox Code Playgroud)

utilities.gradle:

task hello(type: GreetingTask)

class GreetingTask extends DefaultTask {
    @TaskAction
    def greet() {
        println 'hello from GreetingTask'
    }
 }
Run Code Online (Sandbox Code Playgroud)

的build.gradle

task hellox(type: GreetingTask)
Run Code Online (Sandbox Code Playgroud)

好的......我在这里阅读文档:http://www.gradle.org/docs/current/userguide/custom_tasks.html

它说自定义任务在外面是不可见的......但是......如何与团队分享自定义任务,而不是为所有东西制作一个Jar.我想要的是将utilities.gradle放在网络驱动器上并与另一个共享.

请帮助

Pet*_*ser 14

有一个特殊的$rootDir/buildSrc目录,它是自己的构建.此构建生成的所有类都可用于"main"构建中的所有构建脚本.在buildSrc构建有一个默认的build.gradle,但你可以添加你自己的.默认情况下,Java类是预期的src/main/java,而Groovy类则在src/main/groovy.您可以buildSrcGradle用户指南中阅读更多相关信息.

要跨多个构建共享类,可以使用单独的插件项目来发布Jar.