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
我怎么能提到子项目应该在根项目之前构建。
在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