我有一个gradle复合构建项目,它从included build运行任务。我无法对包含的版本进行更改。
对于某项任务,我想首先清理包含的构建,然后构建它。即,我想做(松散地):
some-project:clean
some-project:build
其中some-project
是包含的版本。我尝试通过设置依赖于这些外部任务的任务来做到这一点:
task cleanIncludedBuild {
dependsOn gradle.includedBuild("some-project").task("clean")
}
task buildIncludedBuild {
dependsOn cleanIncludedBuild
dependsOn gradle.includedBuild("some-project").task("build")
}
但是,由于依赖项之间没有排序,因此该执行顺序在声明时有效:
some-project:build
some-project:clean
cleanIncludedBuild
buildIncludedBuild
虽然这当然不是我追求的目标。
我想做像
这样的事情gradle.includedBuild("some-project").task("build").dependsOn cleanIncludedBuild
但上面的task()
返回的值是IncludedBuildTaskReference
类型,它基本上是对底层任务的只读引用,并且不允许添加依赖项。