如何在同一插件中指定两个任务之间的依赖关系

时间:2020-08-11 10:30:56

标签: gradle gradle-plugin

我正在编写gradle插件,该插件的功能类似于protobuf-从其他类型的文件生成源文件(这是专有文件)。用伪代码看起来像这样。

class CustomUnzipTask : AbstractCopyTask {
}

class Plugin : Plugin<Project> {
    dependencies.add("some:binary:dependencies")
    dependencies.add("some:binary:dependencies")
    afterEvaluate {
        val unzipTasks = conf.dependencies.map {
            tasks.register("unzip_$it.name", CustomUnzipTask::class.java) {
            }
        }
        tasks.withType(GenerateTask::class.java).configureEach {
             dependsOn(*unzipTasks)
        }
    }
}

class GenerateTask {
}

我有两种类型的任务,一种用于代码生成,这取决于二进制依赖项的存在。一种使用符号链接解压缩此二进制依赖关系的方法。我尝试将它们与dependsOn链接,但是我没有执行unzip。我无法共享完整的源代码,但是也许我正在做某些明显错误的事情,或者您可以为我提供示例以了解如何执行类似的操作?

0 个答案:

没有答案