如何管理gradle模块项目和应用程序之间的组合构建

如何管理gradle模块项目和应用程序之间的组合构建,gradle,build.gradle,gradle-plugin,Gradle,Build.gradle,Gradle Plugin,我正和格雷德尔面对这件事。 我和Gradle有两个多项目构建,我们称它们为modules technical,和modules business rootProject.name = 'my-app' includeBuild '../modules-business' includeBuild '../modules-technical' 这是我的设置。gradle用于模块业务: rootProject.name = 'modules-business' include 'business-

我正和格雷德尔面对这件事。
我和Gradle有两个多项目构建,我们称它们为
modules technical
,和
modules business

rootProject.name = 'my-app'
includeBuild '../modules-business'
includeBuild '../modules-technical'
这是我的
设置。gradle
用于
模块业务

rootProject.name = 'modules-business'
include 'business-core'
.. snip business-* modules ..
includeBuild '../modules-technical/'
这意味着
模块业务
取决于
模块技术

现在,我想开发一个依赖于
模块业务的应用程序

rootProject.name = 'my-app'
includeBuild '../modules-business'
includeBuild '../modules-technical'
由于Gradle 4.2.1当前的局限性,我需要对我的
模块业务
项目的
includebild
声明进行评论。像这样:

rootProject.name = 'modules-business'
include 'business-core'
.. snip business-* modules ..
// includeBuild '../modules-technical/'

目前是否有更好的方法来管理此限制?也就是说,如何使用Gradle复合构建开发多模块和应用程序?

您应该能够做到这一点

if (settings.hasProperty('doCompositeBuilds') && doCompositeBuilds.toBoolean()) {
    includeBuild '../modules-technical/'
}
使用
modules business
时,将
doCompositeBuilds
设置为
true
;使用app时,将其设置为
false
,或不设置

或者您可以有两个
模块业务分支
,一个带有
includebild
,一个没有,然后使用您实际需要的分支