在 Kotlin 开发中,Gradle 是最常用的构建工具,尤其在 Android 项目和 Kotlin/JVM 项目中被广泛使用。它负责项目的依赖管理、编译、打包、测试等自动化流程。以下是关于 Kotlin 与 Gradle 的核心知识点:
1. Kotlin 项目中 Gradle 的两种脚本形式
Gradle 支持两种脚本语言编写构建逻辑:
- Groovy 脚本(传统) :早期 Android 项目常用,以
.gradle为后缀。 - Kotlin 脚本(Kotlin DSL) :以
.gradle.kts为后缀,用 Kotlin 语言编写,语法更严谨、支持 IDE 自动补全,是当前推荐的方式(尤其新项目)。
例如,一个简单的 Kotlin/JVM 项目的build.gradle.kts配置:
kotlin
scss
plugins {
kotlin("jvm") version "1.9.0" // 应用Kotlin JVM插件
}
repositories {
mavenCentral() // 依赖仓库(中央仓库)
}
dependencies {
implementation(kotlin("stdlib-jdk8")) // Kotlin标准库依赖
testImplementation(kotlin("test")) // 测试依赖
}
2. 核心插件:Kotlin 与 Gradle 的桥梁
Gradle 通过 "插件" 扩展功能,Kotlin 开发需依赖以下核心插件:
kotlin("jvm"):用于 Kotlin/JVM 项目(如后端、工具类),负责编译 Kotlin 代码为 JVM 字节码。kotlin("android"):Android 项目专用,配合 Android Gradle 插件,支持 Kotlin 编译与 Android 组件(Activity、Fragment 等)。kotlin("multiplatform"):跨平台项目(如 Kotlin Multiplatform Mobile),支持同时编译到 JVM、JS、Native 等平台。kotlin("js"):Kotlin/JS 项目,编译为 JavaScript 代码。
3. 依赖管理
Gradle 的核心功能之一是管理项目依赖(如库、框架),Kotlin 项目中常见依赖配置:
implementation:添加编译和运行时依赖,不暴露给依赖当前模块的其他模块。api:添加编译和运行时依赖,且会暴露给依赖当前模块的其他模块(类似传统compile)。testImplementation:仅用于测试代码的依赖(如 JUnit、KotlinTest)。
示例(添加第三方库):
kotlin
scss
dependencies {
implementation("com.squareup.retrofit2:retrofit:2.9.0") // 网络库
testImplementation("junit:junit:4.13.2") // 测试框架
}
4. Kotlin 版本管理
推荐在settings.gradle.kts中统一管理 Kotlin 版本(避免多模块版本不一致):
kotlin
scss
// settings.gradle.kts
pluginManagement {
val kotlinVersion by settings("1.9.0")
plugins {
kotlin("jvm") version kotlinVersion
kotlin("android") version kotlinVersion
}
}
5. 常用 Gradle 命令(Kotlin 项目)
在项目根目录通过终端执行:
./gradlew build:编译项目并执行测试,生成可执行文件 / JAR 包。./gradlew run:运行 Kotlin/JVM 项目(需配置application插件)。./gradlew test:仅执行测试代码。./gradlew clean:清理编译生成的文件。./gradlew dependencies:查看项目依赖树(排查依赖冲突)。
6. Android 项目中的 Kotlin 与 Gradle
Android 官方推荐用 Kotlin 开发,其 Gradle 配置有特殊性:
-
需配合
com.android.application或com.android.library插件。 -
在
android块中配置编译版本、签名信息等,Kotlin 相关配置嵌套其中:kotlin
iniandroid { compileSdk = 34 defaultConfig { applicationId = "com.example.myapp" minSdk = 21 targetSdk = 34 } kotlinOptions { jvmTarget = "17" // 指定JVM目标版本 } }
7. 学习资源
- 官方文档 :Kotlin Gradle 插件文档
- Gradle 官网 :Gradle Kotlin DSL 指南
- 实践参考 :Android Studio 新建项目时自动生成的
build.gradle.kts文件,是最佳入门示例。
掌握 Gradle 是 Kotlin 项目开发的基础,尤其在处理复杂依赖或多模块项目时不可或缺。