我正在编写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
。我无法共享完整的源代码,但是也许我正在做某些明显错误的事情,或者您可以为我提供示例以了解如何执行类似的操作?