安装流程
1
安装 JDK
2
安装 Gradle
3
配置环境变量
4
配置 Gradle Wrapper
Gradle 下载与安装
前置要求:需要先安装 JDK 8 或更高版本,Android 开发推荐 JDK 11+
安装方式对比
| 安装方式 | 优点 | 缺点 | 推荐场景 |
|---|---|---|---|
| 手动安装 | 完全控制版本 | 需要手动配置环境 | 学习、测试 |
| 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
常见问题与注意事项
解决方案:
- 配置国内镜像仓库(最重要)
- 配置 init.gradle 全局镜像(见上方配置部分)
- 清理 Gradle 缓存后重新下载:
# 删除缓存目录 # Windows: %USERPROFILE%\.gradle\caches # Mac/Linux: ~/.gradle/caches # 或使用命令 gradlew cleanBuildCache - 检查网络连接
解决方案:
- 增加 Gradle JVM 堆内存:
# gradle.properties org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m - 设置 GRADLE_OPTS 环境变量:
# Windows set GRADLE_OPTS=-Xmx4096m # Mac/Linux export GRADLE_OPTS="-Xmx4096m" - 关闭其他应用释放内存
查看依赖树:
gradlew dependencies
gradlew dependencyInsight --dependency <库名>
解决方案:
- 使用
constraints强制指定版本 - 使用
exclude排除传递依赖 - 使用平台/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.x | JDK 8 |
| Gradle 7.x | JDK 8 |
| Gradle 6.x | JDK 8 |
| Gradle 5.x | JDK 8 |
建议:使用 Gradle Wrapper 管理版本,避免版本不兼容问题
使用 Wrapper 升级(推荐):
# 升级 Wrapper 到指定版本
gradlew wrapper --gradle-version 8.5
# 升级 Wrapper 到最新版本
gradlew wrapper --gradle-version latest
# 然后提交 gradle-wrapper.properties 到版本控制
手动升级:
- 修改
gradle/wrapper/gradle-wrapper.properties - 更新
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