将任务依赖项添加到Gradle中的现有插件任务?

时间:2015-04-29 01:08:25

标签: java android groovy gradle

我在my.gradle文件中添加了第二个gradle文件build.gradle

my.gradle的内容是:

申请插件:MyPlugin

class MyPlugin implements Plugin<Project> {

    @Override
    void apply(Project project) {
       project.tasks.create(name: "myTask", type: MyTaskClass) {
       }
    }
}

build.gradle我设置在顶部:

apply from: 'myPlugin.gradle'

现在我想在build.gradle中设置一个任务依赖项:

tasks.myPlugin.myTask.dependsOn += someOtherTask

当我构建时,我收到以下错误:

> Could not find property 'myPlugin' on task set.

如何从myTask中的myPlugin访问build.gradle

编辑:我试图确保someTask在myTask之后运行。我试着这样做:

taskX.finalizedBy taskY

就我而言:

tasks.myPlugin.myTask.finalizedBy someOtherTask

但前者不起作用。

2 个答案:

答案 0 :(得分:3)

以下脚本将完成这项工作:

<强> my.gradle

apply plugin: MyPlugin

class MyPlugin implements Plugin<Project> {

    @Override
    void apply(Project project) {
       project.tasks.create(name: "myTask", type: Copy) {
       }
    }
}

<强>的build.gradle

apply from: 'my.gradle'

task someOtherTask << {
   println 'doLast'
}

project.tasks.myTask.dependsOn(someOtherTask)

答案 1 :(得分:-2)

如果您正确包含插件,则应该会看到您的任务。例如,如果您包含java插件并运行

gradle tasks --all

你应该看到包含compileJava。对您而言,运行gradle tasks --all。您应该能够将其作为tasks.myTask或任务引用[&#39; myTask&#39;]