Gradle-安装、配置、使用和了解
- 掘金-一头小阿牛
简介
Gradle 是一个基于 Apache Ant 和 Apache Maven 概念的项目自动化构建工具。它使用一种基于 Groovy 或 Kotlin 的特定领域语言(DSL)来声明项目配置,而不是传统的 XML。
主要特点:
- 灵活且高性能的构建工具
- 支持多项目构建
- 强大的依赖管理
- 支持增量构建
- 丰富的插件生态系统
- 与 Maven 和 Ivy 仓库兼容
Gradle 下载
gradle官网 地址
可以下载这个8.0版本的源码版本
下载后的解压文件
配置环境变量
配置path环境变量下gradle的地址
打开终端,输入 gradle -version 就可以检验是否配置成功
Linux/Mac:
# 解压
unzip gradle-x.x.x-bin.zip -d /opt/gradle
# 设置环境变量 (添加到 ~/.bashrc 或 ~/.zshrc)
export GRADLE_HOME=/opt/gradle/gradle-x.x.x
export PATH=${GRADLE_HOME}/bin:${PATH}
# 使配置生效
source ~/.bashrc
配置国内源
Gradle自带的Maven源地址是国外的,很慢,可以选用阿里云的。 配置阿里云:在下载好的 gradle 中的 init.d 文件夹中新建一个 init.gradle 文件,配置以下信息
allprojects {
repositories {
mavenLocal()
maven {
url 'https://maven.aliyun.com/repository/public/'
}
maven {
url 'https://maven.aliyun.com/repository/central'
}
mavenCentral()
}
}
IDEA使用
配置 Setting 中的 Gradle 仓库地址
全局配置
Gradle 的全局配置文件位于用户主目录下的 .gradle 文件夹中:
~/.gradle/gradle.properties - 全局属性配置
~/.gradle/init.d/ - 初始化脚本
常用全局配置示例 (gradle.properties):
# 配置 Gradle 守护进程
org.gradle.daemon=true
# 配置并行构建
org.gradle.parallel=true
# 配置 JVM 参数
org.gradle.jvmargs=-Xmx2g -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
# 配置 HTTP 代理
systemProp.http.proxyHost=proxy.example.com
systemProp.http.proxyPort=8080
systemProp.https.proxyHost=proxy.example.com
systemProp.https.proxyPort=8080
项目结构
典型的 Gradle 项目结构:
my-project/
├── build.gradle # 项目构建脚本
├── settings.gradle # 项目设置文件
├── gradle
│ └── wrapper # Gradle Wrapper 文件
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew # Unix/Linux 包装脚本
├── gradlew.bat # Windows 包装脚本
└── src # 源代码目录
├── main
│ ├── java # Java 源代码
│ └── resources # 资源文件
└── test
├── java # Java 测试代码
└── resources # 测试资源文件
Gradle 依赖管理
依赖配置 常见依赖配置:
implementation - 项目编译和运行时依赖
compileOnly - 仅编译时依赖
runtimeOnly - 仅运行时依赖
testImplementation - 测试编译和运行时依赖
testCompileOnly - 测试仅编译时依赖
testRuntimeOnly - 测试仅运行时依赖
依赖声明
dependencies {
// 外部模块依赖
implementation 'org.springframework:spring-core:5.3.8'
// 项目依赖
implementation project(':subproject')
// 文件依赖
implementation files('libs/custom.jar')
implementation fileTree(dir: 'libs', include: ['*.jar'])
// 动态版本
implementation 'org.springframework:spring-web:+' // 不推荐
implementation 'org.springframework:spring-web:5.3.+' // 较好
}
Gradle 常用命令
# 执行特定任务
gradle taskName
# 查看所有任务
gradle tasks
# 查看项目依赖
gradle dependencies
# 构建项目
gradle build
# 清理构建
gradle clean
# 运行应用 (application 插件)
gradle run
# 跳过测试
gradle build -x test
# 构建并刷新依赖
gradle build --refresh-dependencies
# 并行构建
gradle build --parallel
# 调试模式
gradle build --debug
# 查看构建性能
gradle build --profile
常见问题解答
Q: 构建速度慢怎么办? A:
启用 Gradle 守护进程 (org.gradle.daemon=true)
配置并行构建 (org.gradle.parallel=true)
增加 JVM 内存 (org.gradle.jvmargs=-Xmx2g)
使用构建缓存 (org.gradle.caching=true)
避免动态版本依赖
Q: 如何解决依赖冲突? A:
使用 gradle dependencies 查看依赖树
使用 strictly 强制指定版本
使用 exclude 排除特定依赖
Q: Gradle Wrapper 是什么? A: Gradle Wrapper 是一个脚本,它允许你在没有安装 Gradle 的情况下运行 Gradle 构建。它会自动下载指定版本的 Gradle。
Q: 如何升级 Gradle 版本? A:
修改 gradle-wrapper.properties 中的 distributionUrl
或者运行 gradle wrapper --gradle-version x.x.x
Q: 构建失败显示 "Could not resolve dependencies" 怎么办? A:
检查网络连接和代理设置
确保仓库配置正确
尝试 --refresh-dependencies 选项
检查依赖是否存在于配置的仓库中