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

时间:2017-10-11 10:31:08

标签: gradle build.gradle gradle-plugin

我正在与Gradle面对这个limitation / issue 我有两个使用Gradle的多项目构建,我们称之为modules-technicalmodules-business

这是setting.gradle的{​​{1}}:

modules-business

这意味着,rootProject.name = 'modules-business' include 'business-core' .. snip business-* modules .. includeBuild '../modules-technical/' 取决于modules-business

现在,我想开发一款取决于modules-technical的应用。

modules-business

由于Gradle 4.2.1目前的局限性,我需要在rootProject.name = 'my-app' includeBuild '../modules-business' includeBuild '../modules-technical' 项目上评论includeBuild语句。像这样:

modules-business

现在有更好的方法来管理此限制吗?意思是,如何使用Gradle复合构建开发多模块和应用程序?

1 个答案:

答案 0 :(得分:1)

你应该能够做到

if (settings.hasProperty('doCompositeBuilds') && doCompositeBuilds.toBoolean()) {
    includeBuild '../modules-technical/'
}

并在使用doCompositeBuildstrue时将modules-business设置为false,或者在使用应用时保留未设置状态。

或者您可以有modules-business的两个分支,一个includeBuild,一个没有,然后使用您实际需要的分支。