Appearance
多项目构建基础
多项目构建允许将大型项目拆分为多个子模块,每个模块独立管理,同时共享版本、依赖和构建配置。
项目结构
company-app/
├── settings.gradle.kts ← 声明所有子项目(必须)
├── build.gradle.kts ← 根项目(共享配置)
├── gradle/
│ ├── wrapper/...
│ └── libs.versions.toml ← 统一版本目录
├── gradlew / gradlew.bat
│
├── core/ ← 核心业务库
│ ├── build.gradle.kts
│ └── src/...
│
├── common/ ← 公共工具库
│ ├── build.gradle.kts
│ └── src/...
│
├── service/
│ ├── auth/ ← 认证服务
│ │ ├── build.gradle.kts
│ │ └── src/...
│ └── order/ ← 订单服务
│ ├── build.gradle.kts
│ └── src/...
│
└── web/ ← Web 应用
├── build.gradle.kts
└── src/...settings.gradle.kts
kotlin
// settings.gradle.kts
rootProject.name = "company-app"
// 插件管理(全局统一)
pluginManagement {
repositories {
gradlePluginPortal()
mavenCentral()
}
}
// 依赖仓库管理(推荐统一配置)
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
}
}
// 声明子项目
include(
"core",
"common",
"service:auth",
"service:order",
"web"
)根项目 build.gradle.kts
kotlin
// 根项目 build.gradle.kts
// 所有项目的公共配置
allprojects {
group = "com.example"
version = "1.0.0"
}
// 所有子项目的公共配置
subprojects {
apply(plugin = "java")
java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
tasks.withType<JavaCompile> {
options.encoding = "UTF-8"
}
tasks.withType<Test> {
useJUnitPlatform()
}
// 子项目通用依赖
dependencies {
"testImplementation"(platform("org.junit:junit-bom:5.10.1"))
"testImplementation"("org.junit.jupiter:junit-jupiter")
"testRuntimeOnly"("org.junit.platform:junit-platform-launcher")
}
}子项目 build.gradle.kts
kotlin
// core/build.gradle.kts
plugins {
`java-library`
}
dependencies {
api("org.slf4j:slf4j-api:2.0.9")
implementation("com.google.guava:guava:32.0.1-jre")
}kotlin
// web/build.gradle.kts
plugins {
java
id("org.springframework.boot") version "3.2.0"
id("io.spring.dependency-management") version "1.1.4"
}
dependencies {
implementation(project(":core")) // 依赖 core 模块
implementation(project(":common")) // 依赖 common 模块
implementation("org.springframework.boot:spring-boot-starter-web")
}常用命令
bash
# 构建所有子项目
./gradlew build
# 只构建 core 子项目
./gradlew :core:build
# 只构建 service:auth 子项目
./gradlew :service:auth:build
# 查看所有子项目
./gradlew projects
# 查看特定子项目的任务
./gradlew :web:tasks
# 并行构建(大型多项目时加速)
./gradlew build --parallel下一步
- settings.gradle 详解 - 详细了解设置文件
- 子项目配置 - allprojects/subprojects 配置
- 项目间依赖 - 子项目互相引用