如何管理 gradle 模块项目和应用程序之间的复合构建
How to manage composite builds between gradle modules projects and applications
我正面临 limitation / issue 和 Gradle。
我有两个 Gradle 的多项目构建,我们称它们为 modules-technical
和 modules-business
.
这是我的 setting.gradle
modules-business
:
rootProject.name = 'modules-business'
include 'business-core'
.. snip business-* modules ..
includeBuild '../modules-technical/'
这意味着 modules-business
取决于 modules-technical
。
现在,我想开发一个依赖于modules-business
的应用程序。
rootProject.name = 'my-app'
includeBuild '../modules-business'
includeBuild '../modules-technical'
由于 Gradle 4.2.1 当前的限制,我需要在我的 modules-business
项目中评论 includeBuild
声明。像这样:
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
,在使用应用程序时设置为 false
或保持不变。
或者你可以有两个分支 modules-business
,一个有 includeBuild
,一个没有,然后使用你实际需要的那个。
我正面临 limitation / issue 和 Gradle。
我有两个 Gradle 的多项目构建,我们称它们为 modules-technical
和 modules-business
.
这是我的 setting.gradle
modules-business
:
rootProject.name = 'modules-business'
include 'business-core'
.. snip business-* modules ..
includeBuild '../modules-technical/'
这意味着 modules-business
取决于 modules-technical
。
现在,我想开发一个依赖于modules-business
的应用程序。
rootProject.name = 'my-app'
includeBuild '../modules-business'
includeBuild '../modules-technical'
由于 Gradle 4.2.1 当前的限制,我需要在我的 modules-business
项目中评论 includeBuild
声明。像这样:
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
,在使用应用程序时设置为 false
或保持不变。
或者你可以有两个分支 modules-business
,一个有 includeBuild
,一个没有,然后使用你实际需要的那个。