如何使用复合构建构建 3 个单独的 gradle 项目



我有 3 个项目 - A、B 和 C。它们共享相同的核心模块shared_core。该项目中的每一个都可以使用其gradlew构建命令进行构建。但我希望shared_core只建造一次而不是三次,因为这是浪费时间。有人告诉我,我可以使用多项目构建或复合构建。

现在我正在尝试创建这 3 个的复合构建,但我正在努力。

有人可以向我展示我的build.gradle和settings.gradle对于此任务应该是什么样子的示例吗?

我真的是gradle的新手,所以感谢您的任何帮助。

创建多项目构建的 gradle 指南是理解此主题的绝佳起点 - 我建议您完成。 在短期内,以下是根据您在评论中的反馈对您的问题的答案:

假设您的项目结构类似于

testproject/A
testproject/B
testproject/C
testproject/shared_modules

您需要:

  1. 使用以下条目添加testproject/settings.gradleinclude 'A', 'B', 'C', 'shared_core'

  2. A, B, C中的build.gradle文件应包含以下依赖项定义:

    dependency compile project(':shared_core')

作为一个具体的例子,下面是一个简单的虚拟gradle多模块项目的配置,该项目具有上述结构:

testproject/settings.gradle:

rootProject.name = 'testproject'
include 'A', 'B', 'C', 'shared_core'

testproject/build.gradle

plugins {
id 'java'
}
group 'uk.co.so.answers'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
}

testproject/{A,B,C}/build.gradle

plugins {
id 'java'
}
group 'uk.co.so.answers'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile project(':shared_core')
testCompile group: 'junit', name: 'junit', version: '4.12'
}

testproject/shared_core/build.gradle

plugins {
id 'java'
}
group 'uk.co.so.answers'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
}

现在,要生成所有项目,请从项目根目录运行:

./gradlew clean build

最新更新