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

Add Task dependency to existing Plugin Task in Gradle?

我在我的 build.gradle 文件中包含第二个 gradle 文件 my.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.

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

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

taskX.finalizedBy taskY

就我而言:

tasks.myPlugin.myTask.finalizedBy someOtherTask

但是前者不行。

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

gradle 任务 --all

您应该会看到包含了 compileJava。你的也一样,运行 gradle tasks --all。您应该能够将其引用为 tasks.myTask 或 tasks['myTask']

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

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)