Gradle 根项目依赖子项目构建

Gradle root project depends on subprojects build

我怎么能提到子项目应该在根项目之前构建。

settings.gradle

rootProject.name = 'loginmodule'
include 'servicebundle'
include 'webbundle'
include 'webredirectbundle'

当我尝试这个 build dependson subprojects:build 时,它给出了类似循环依赖的错误。 目前在我的根项目中 build.gradle 正在捆绑所有子项目,如下所示

task createESA(type: Zip, dependsOn: generateSubSystemFile) {
    subprojects.each { dependsOn("${it.name}:build") }
    from subprojects.collect { "${it.buildDir}/libs" }
    from (subsystemFile) {
        into 'OSGI-INF'
    }
    from ('resources/OSGI-INF') {
        into 'OSGI-INF'
    }
    baseName project.name
    extension 'esa'
}

build.finalizedBy createESA

我正在使用 gradle clean build 构建项目。

有什么更好的方法吗??我只想在根项目构建之前先构建所有子项目。

让你的 createESA 任务依赖于 subprojects*.build,它会说任务不能 运行 直到所有子项目中的所有 build 任务有运行。然后,声明根项目的build任务依赖于createESA.

task createESA(type: Zip, dependsOn: subprojects*.build) {
    // etc...
}

build.dependsOn createESA