我有3个项目-A,B和C。它们共享相同的核心模块 shared_core 。可以使用其 gradlew build 命令来构建该项目的每个项目。但是我希望将shared_core仅构建一次而不三次,因为这是浪费时间。有人告诉我可以使用多项目构建或复合构建。
现在,我正在尝试创建这3个组件的复合版本,但我正在努力。
有人可以向我展示此任务的build.gradle和settings.gradle外观的示例吗?
我真的很新,所以谢谢您的帮助。
答案 0 :(得分:1)
gradle guide to creating multi project builds是理解该主题的一个很好的起点-我建议您逐步进行研究。在短期内,这是根据您在评论中的反馈对问题的回答:
假设您的项目结构类似于
testproject/A
testproject/B
testproject/C
testproject/shared_modules
您需要:
在testproject/settings.gradle
中添加以下条目:include 'A', 'B', 'C', 'shared_core'
build.gradle
中的A, B, C
文件应包含以下依赖项定义:
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