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

时间:2013-06-03 06:43:48

标签: gradle

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

中很容易
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放在网络驱动器上并与另一个共享。

请帮助

1 个答案:

答案 0 :(得分:14)

有一个特殊的$rootDir/buildSrc目录,它是自己的构建。此构建生成的所有类都可用于“main”构建中的所有构建脚本。 buildSrc版本具有默认build.gradle,但您可以添加自己的版本。默认情况下,预期在src/main/java下使用Java类,在src/main/groovy下使用Groovy类。您可以在Gradle User Guide中详细了解buildSrc

要在多个版本之间共享类,可以使用另一个发布Jar的插件项目。