kotlin开发中的构建工具gradle

在 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.applicationcom.android.library插件。

  • android块中配置编译版本、签名信息等,Kotlin 相关配置嵌套其中:

    kotlin

    ini 复制代码
    android {
        compileSdk = 34
        defaultConfig {
            applicationId = "com.example.myapp"
            minSdk = 21
            targetSdk = 34
        }
        kotlinOptions {
            jvmTarget = "17" // 指定JVM目标版本
        }
    }

7. 学习资源

掌握 Gradle 是 Kotlin 项目开发的基础,尤其在处理复杂依赖或多模块项目时不可或缺。

相关推荐
葫芦和十三3 小时前
图解 MongoDB 28|块与迁移:balancer 怎么均衡数据
后端
葫芦和十三3 小时前
图解 MongoDB 27|分片策略:范围分片 vs 哈希分片
后端·mongodb·agent
paopaokaka_luck3 小时前
英语单词学习系统的设计与实现(基于艾宾浩斯遗忘曲线的智能复习机制、语音朗读、多题型测试与错题自动收录、Echarts图形化分析)
vue.js·spring boot·后端·echarts
我叫黑大帅4 小时前
MySQL 并发插入竞态问题:原子写入实践指南
后端·mysql·面试
zhangxingchao5 小时前
AI大模型核心八:从 Agent Skill、长文档 RAG 到知识库更新与训练策略
前端·人工智能·后端
我叫黑大帅5 小时前
别再手动写 updated_at了,这坑我踩过
后端·面试·go
zhangxingchao6 小时前
AI大模型核心七:从 Workflow、RAG、记忆治理到幂等性
前端·人工智能·后端
犀利豆7 小时前
AI in Harness(二)
java·人工智能·后端
IT_陈寒7 小时前
Python装饰器竟然偷偷改了函数名?这个坑我爬了三天
前端·人工智能·后端
bkl_92137 小时前
GPT-Image-2 文生图:如何稳定生成完整的人物全身照?
后端·gpt·restful