Gradle Logo Gradle 构建工具

基于 Groovy/Kotlin 的现代化构建自动化工具

安装流程

1

安装 JDK

2

安装 Gradle

3

配置环境变量

4

配置 Gradle Wrapper

Gradle 下载与安装

前置要求:需要先安装 JDK 8 或更高版本,Android 开发推荐 JDK 11+
Gradle 官方

Gradle 官方网站下载

  • Gradle 8.x - 最新版本
  • Gradle 7.x - 稳定版本
  • 完全免费开源
官方下载 GitHub
验证安装:
gradle --version
国内镜像

国内镜像加速下载

  • 清华大学开源软件镜像
  • 阿里云镜像
  • 下载速度更快
清华镜像 阿里镜像
安装方式对比
安装方式 优点 缺点 推荐场景
手动安装 完全控制版本 需要手动配置环境 学习、测试
SDKMAN! 方便切换版本 仅支持 Mac/Linux Mac/Linux 开发
Gradle Wrapper 项目级版本控制
无需手动安装
首次下载慢 团队项目(强烈推荐)
包管理器 简单快捷 版本可能滞后 快速体验
Windows 手动安装步骤
1. 下载并解压

下载 Gradle 压缩包(如 gradle-8.5-bin.zip),解压到合适目录,如:

C:\Program Files\Gradle\gradle-8.5
2. 配置环境变量

新建系统变量 GRADLE_HOME:

GRADLE_HOME = C:\Program Files\Gradle\gradle-8.5

编辑 Path 变量,添加:

%GRADLE_HOME%\bin
3. 验证安装

打开命令提示符,输入:

gradle --version
Mac/Linux 使用 SDKMAN! 安装
# 1. 安装 SDKMAN!
curl -s "https://get.sdkman.io" | bash

# 2. 安装 Gradle
sdk install gradle

# 3. 安装指定版本
sdk install gradle 8.5

# 4. 切换版本
sdk use gradle 8.5

# 5. 查看已安装版本
sdk list gradle

Gradle Wrapper(推荐)

最佳实践:团队项目强烈建议使用 Gradle Wrapper,确保所有开发者使用相同版本
什么是 Gradle Wrapper?

Gradle Wrapper 是一个脚本,它会自动下载并使用项目指定的 Gradle 版本。

  • gradlew - Linux/Mac 执行脚本
  • gradlew.bat - Windows 执行脚本
  • gradle/wrapper/gradle-wrapper.jar - Wrapper 实现
  • gradle/wrapper/gradle-wrapper.properties - 版本配置
生成 Wrapper

如果已安装 Gradle,可在项目中执行:

# 生成 Wrapper
gradle wrapper

# 或指定版本
gradle wrapper --gradle-version 8.5

# 指定分发类型(bin 或 all)
gradle wrapper --gradle-distribution-type all
使用 Wrapper

使用 Wrapper 执行构建命令:

# Windows
gradlew.bat build
gradlew.bat clean assembleDebug

# Mac/Linux
./gradlew build
./gradlew clean assembleDebug

# 查看任务列表
gradlew.bat tasks

Gradle 配置

1. 配置仓库镜像(build.gradle)
repositories {
    // 阿里云 Maven 镜像
    maven { url 'https://maven.aliyun.com/repository/public' }
    maven { url 'https://maven.aliyun.com/repository/google' }
    maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
    
    // 华为云镜像
    maven { url 'https://repo.huaweicloud.com/repository/maven/' }
    
    // 中央仓库(备用)
    mavenCentral()
    google()
}
2. 配置 init.gradle(全局配置)

%USERPROFILE%\.gradle\init.gradle 添加:

allprojects {
    repositories {
        maven { url 'https://maven.aliyun.com/repository/public' }
        maven { url 'https://maven.aliyun.com/repository/google' }
        mavenCentral()
        google()
    }
}

1. 配置 gradle.properties

%USERPROFILE%\.gradle\gradle.properties 添加:

# 启用构建缓存
org.gradle.caching=true

# 启用并行构建
org.gradle.parallel=true

# 启用配置缓存(Gradle 7.4+)
org.gradle.configuration-cache=true

# 设置 JVM 堆内存
org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m

# 启用守护进程
org.gradle.daemon=true
2. 使用构建缓存
# 使用 --build-cache 参数
gradlew build --build-cache

# 或在 gradle.properties 中永久启用
org.gradle.caching=true
3. 常用优化命令
# 并行构建
gradlew build --parallel

# 离线模式(依赖已下载)
gradlew build --offline

# 只运行特定任务
gradlew assembleDebug

# 查看任务执行时间
gradlew build --profile

settings.gradle 配置
rootProject.name = 'my-project'

// 包含子项目
include 'module-a'
include 'module-b'
include 'module-c'

// 或者使用扁平化结构
include ':app', ':lib', ':common'
项目结构示例
my-project/
├── build.gradle          # 根项目配置
├── settings.gradle       # 项目设置
├── gradle.properties     # 全局属性
├── app/                  # 应用模块
│   └── build.gradle
├── lib/                  # 库模块
│   └── build.gradle
└── common/               # 公共模块
    └── build.gradle
模块间依赖
dependencies {
    implementation project(':lib')
    implementation project(':common')
}

常用 Gradle 命令

Java 项目命令
# 查看任务列表
gradlew tasks

# 清理构建
gradlew clean

# 编译 Java 代码
gradlew compileJava

# 运行测试
gradlew test

# 打包 JAR
gradlew jar

# 构建项目
gradlew build

# 查看依赖
gradlew dependencies
gradlew dependencyInsight --dependency <name>
Android 项目命令
# 查看 Android 任务
gradlew tasks --all

# 清理构建
gradlew clean

# 编译 Debug 版本
gradlew assembleDebug

# 编译 Release 版本
gradlew assembleRelease

# 安装到设备
gradlew installDebug

# 运行测试
gradlew test
gradlew connectedAndroidTest

# 生成 APK
gradlew assembleDebug
gradlew assembleRelease
常用命令参数
# 刷新依赖
gradlew build --refresh-dependencies

# 更新依赖(锁定版本)
gradlew dependencies --write-locks

# 堆栈输出
gradlew build --stacktrace      # 完整堆栈
gradlew build --info           # 详细信息
gradlew build --debug          # 调试模式

# 排除任务
gradlew build -x test          # 跳过测试

# 持续构建(监听文件变化)
gradlew build --continuous

# 生成构建分析报告
gradlew build --profile

build.gradle 配置

plugins {
    id 'java'
    id 'application'
}

// Java 版本
java {
    sourceCompatibility = JavaVersion.VERSION_17
    targetCompatibility = JavaVersion.VERSION_17
}

// 仓库配置
repositories {
    maven { url 'https://maven.aliyun.com/repository/public' }
    mavenCentral()
}

// 依赖配置
dependencies {
    // 编译时依赖
    implementation 'com.google.guava:guava:32.1.3-jre'
    implementation 'org.apache.commons:commons-lang3:3.14.0'
    
    // 测试依赖
    testImplementation 'org.junit.jupiter:junit-jupiter:5.10.1'
    testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
    
    // 运行时依赖
    runtimeOnly 'mysql:mysql-connector-java:8.0.33'
}

// 应用配置
application {
    mainClass = 'com.example.Main'
}

// JAR 配置
jar {
    manifest {
        attributes 'Main-Class': 'com.example.Main'
    }
}

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
}

android {
    namespace 'com.example.app'
    compileSdk 34

    defaultConfig {
        applicationId "com.example.app"
        minSdk 24
        targetSdk 34
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }
}

dependencies {
    implementation 'androidx.core:core-ktx:1.12.0'
    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'com.google.android.material:material:1.11.0'
    
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
}

plugins {
    id 'org.jetbrains.kotlin.jvm' version '1.9.21'
    id 'application'
}

repositories {
    mavenCentral()
}

dependencies {
    // Kotlin 标准库
    implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.9.21'
    
    // Kotlin 协程
    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3'
    
    // 测试依赖
    testImplementation 'org.jetbrains.kotlin:kotlin-test:1.9.21'
    testImplementation 'org.junit.jupiter:junit-jupiter:5.10.1'
}

tasks.test {
    useJUnitPlatform()
}

kotlin {
    jvmToolchain(17)
}

IDE 集成

IntelliJ IDEA

内置 Gradle 支持,最强大的 Gradle 集成

  • 自动导入 Gradle 项目
  • 可视化依赖管理
  • Gradle 工具窗口
  • Android Studio 基于 IDEA
Gradle 设置:
Settings → Build, Execution, Deployment
    → Build Tools → Gradle
    → Gradle JVM / Gradle 版本
VS Code

安装扩展获得 Gradle 支持

  • Language Support for Java
  • Gradle for Java
  • 轻量级选择
必备扩展:
  • Extension Pack for Java
  • Gradle for Java (Microsoft)
  • Gradle Tasks
Eclipse

需要安装 Buildship 插件

  • Eclipse IDE for Java EE 已内置
  • 右键项目 → Configure → Convert to Gradle
  • Gradle 任务视图
安装 Buildship:
Help → Eclipse Marketplace
    → 搜索 "Buildship"
    → 安装 Gradle 集成插件
Android Studio

Android 开发首选,基于 Gradle

  • 内置 Gradle 支持
  • Android 项目默认使用 Gradle
  • 可视化构建变体
Gradle 设置:
Settings → Build, Execution, Deployment
    → Build Tools → Gradle
    → Android Studio 默认使用 Gradle Wrapper

常见问题与注意事项

解决方案:

  1. 配置国内镜像仓库(最重要)
  2. 配置 init.gradle 全局镜像(见上方配置部分)
  3. 清理 Gradle 缓存后重新下载:
    # 删除缓存目录
    # Windows: %USERPROFILE%\.gradle\caches
    # Mac/Linux: ~/.gradle/caches
    
    # 或使用命令
    gradlew cleanBuildCache
  4. 检查网络连接

解决方案:

  1. 增加 Gradle JVM 堆内存:
    # gradle.properties
    org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m
  2. 设置 GRADLE_OPTS 环境变量:
    # Windows
    set GRADLE_OPTS=-Xmx4096m
    
    # Mac/Linux
    export GRADLE_OPTS="-Xmx4096m"
  3. 关闭其他应用释放内存

查看依赖树:

gradlew dependencies
gradlew dependencyInsight --dependency <库名>

解决方案:

  1. 使用 constraints 强制指定版本
  2. 使用 exclude 排除传递依赖
  3. 使用平台/BOM 统一管理版本
dependencies {
    // 强制指定版本
    constraints {
        implementation 'com.google.guava:guava:32.1.3-jre'
    }
    
    // 排除传递依赖
    implementation('some:lib:1.0') {
        exclude group: 'conflict-group', module: 'conflict-module'
    }
}

Gradle 与 JDK 版本对应关系:

Gradle 版本最低 JDK 版本
Gradle 8.xJDK 8
Gradle 7.xJDK 8
Gradle 6.xJDK 8
Gradle 5.xJDK 8

建议:使用 Gradle Wrapper 管理版本,避免版本不兼容问题

使用 Wrapper 升级(推荐):

# 升级 Wrapper 到指定版本
gradlew wrapper --gradle-version 8.5

# 升级 Wrapper 到最新版本
gradlew wrapper --gradle-version latest

# 然后提交 gradle-wrapper.properties 到版本控制

手动升级:

  1. 修改 gradle/wrapper/gradle-wrapper.properties
  2. 更新 distributionUrl 指向新版本
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

学习资源

官方文档

最权威的学习资料

Gradle 官方文档
入门教程

快速上手指南

Gradle 入门教程
示例项目

官方示例代码

Gradle Guides