你可以创建一个依赖于Gradle内部任务的Gradle任务吗?

3
我特别想知道您是否能在多项目环境中创建依赖于内部“assembleRelease”Gradle任务的任务。这里有许多独立的部分需要构建,因此修改所有构建文件并不是最优解。
我的基本情况是寻找一个任务,例如“release”,它可以调用:a:assembleRelease、:b:assembleRelease和:c:assembleRelease,而无需一开始输入所有项目的名称。
我尝试在根项目build.gradle.kts中定义以下任务:
tasks.register("release") {
    finalizedBy(tasks.getByPath("assembleRelease"))
}

除了tasks.getByName之外,还要尝试通过gradle taskGraph。任务图似乎根本不是正确的路径,但我不确定是否可能这样做或者是否违反gradle的惯例。


1
task A(dependsOn: ['B, 'C']) << { ... } 对你不起作用吗? - Yevhen Danchenko
是的,那确实可行。我想澄清一下最终目标是包括对一个任意命名任务进行测试和编译发布版。输入"gradle test assembleRelease"可以正常工作,但将所有内容封装成一个任务才是我的目标。 - IAmPattycakes
1个回答

0
你只需要定义一个依赖于多个其他任务的任务。
假设根项目:
tasks {
    register("release") {
        dependsOn(
            named(":a:assembleRelease"),
            named(":b:assembleRelease:),
            named(":c:assembleRelease")
        )
    }
}

您可以添加基本上无限数量的任务依赖关系。有关更多详细信息,请参见编写任务,特别是向任务添加依赖关系


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接