首页 > 解决方案 > 如何在 Gradle 中处理一般未找到的任务错误

问题描述

我们正在使用cookiecutter构建原型模式。这实质上意味着我们有一个嵌套结构,其中包含一个外部build.gradle和一个内部build.gradle。有没有办法让内部的任务build.gradle作为外部项目的任务可用?

我正在考虑使用外部GradleBuild任务build.gradle来调用内部任务,但我不确定如何解析和加载build.gradle外部任务中的内部任务。我在想的只是<task> not found在外部捕获错误build.gradle,然后尝试在内部运行该任务build.gradle。有谁知道如何捕获<task> not found异常并在那时运行一些任意任务?

标签: gradle

解决方案


您是否考虑过使用复合构建

但是,没有必要捕获该错误,因为您可以简单地定义一个任务规则,该规则将在运行时创建任何丢失的任务。只需注册如下规则:

tasks.addRule("Pattern: <task>") { name ->
    task(name, type: GradleBuild) {
        dir = // apply your setup here
        tasks = [name]
    }
}

推荐阅读