一、Gradle、Gradle Wrapper 介绍
Gradle 是一个基于 Apache Ant 和 Apache Maven 概念的项目自动化构建开源工具。它使用一种基于 Groovy 的特定领域语言(DSL)来声明项目设置,也增加了基于 Kotlin 语言的 kotlin-based DSL,抛弃了基于 XML 的各种繁琐配置。
Gradle Wrapper 是一个用于简化 Gradle 构建的工具,它将 Gradle 进行了封装,让所有的 Gradle 构建方法在 Gradle Wrapper 的帮助下运行。
Gradle Wrapper 可以视为一个强大的 Gradle 多版本的管理工具。例如,A 项目用 Gradle 5,B 项目用 Gradle 6。借助 Gradle Wrapper, 我们无需手动下载 Gradle 或手动切换版本。Gradle Wrapper 会自动完成这些操作,确保每个项目都能使用其指定的 Gradle 版本,极大地简化了开发流程。
二、Gradle 安装
1、官网下载
地址:https://gradle.org/releases/
或者 https://services.gradle.org/distributions/
找到最新的版本,如上图,最新版是 v8.5(2023.12) ,找到
binary-only
,点击下载文件gradle-xx.zip
。另一个complete
是完整版本,相比于binary-only
多了src源码
和docs文档
,如果不是研究源码无需下载。
找到一个喜欢的位置存放,然后解压即可。
我的解压路径为:D:\develop\gradle-8.5,如下图。
2、配置环境变量
(1)Gradle 命令路径添加到 Path
环境变量Path
,添加刚刚保存的路径,我的是 D:\develop\gradle-8.5\bin
。
(2)修改 .gradle 路径(Gradle 主目录)
.gradle目录,Gradle 主目录,等同于 Maven 的 .m2 目录。
Windows 默认位置:%USERPROFILE%\.gradle。可以通过配置环境变量 GRADLE_USER_HOME
来调整。
用于存储全局的缓存数据,包括依赖项缓存、插件缓存等。
所有的项目共享这个目录的缓存数据。
3、修改依赖镜像源
Gradle 支持 Maven 仓库和 lvy 仓库,需要配置 init.gradle 来指定仓库地址。默认地址是国外的服务器,下载速度极慢。init.gradle 相当于 Maven 的 setting.xml。
init.gradle 有多种配置方式,比如放在 $GRADLE_USER_HOME/目录下,或者$GRADLE_USER_HOME/init.d/目录下。
详情可以看:https://docs.gradle.org/current/userguide/init_scripts.html#sec:using_an_init_script
我是在默认的 .gradle 目录下(%USERPROFILE%/.gradle),新建 init.gradle 文件,添加以下内容:
allprojects {
repositories {
mavenLocal()
maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
mavenCentral()
}
buildscript {
repositories {
maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }
maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }
}
}
}
4、版本验证
命令行输入:gradle -v,显示版本表示安装成功。
三、使用 Gradle-Wrapper(推荐)
gradle
基本每几个月就会更新一次,为了避免同一项目里面不同成员的gradle 版本差异
导致可能的问题。使用 gradle-wapper,配置文件 gradle-wrapper.properties 会定义使用的 gradle 版本和使用 GRADLE_USER_HOME
环境变量地址下载 gradle,所以我们无须手动安装 gradle 也可以正常运行项目。
使用 gradle-wrapper,我们不用再去下载 gradle,不用担心 gradle 更新带来的焦虑,同时避免了版本差异带来的问题。
使用gradle-wrapper
的项目下会有 gradle 目录、gradle>wrapper 目录、wrapper>gradle-wrapper.properties、wrapper>gradle-wapper.jar。
IDEA 创建 gradle 项目默认是使用 graddle-wrapper 的,graddle-wrapper 第一步会去下载 gradle,直连官网那个下载速度十分感人,替换 gradle-wrapper.properties 中的 distributionUrl = https://mirrors.cloud.tencent.com/gradle/
六、Gradle 项目结构
gradle:gradle-wrapper 存放位置
src:与 maven 目录一致
build.gradle:gradle 项目构建文件
gradlew:gradle 命令行工具
settings.gradle:多模块项目配置文件
七、IDEA 配置 gradle
八、Gradle 和 IDEA 适配问题
本人使用的 idea 版本是 2019.3.1,运行 halo 博客的代码,编译各种报错。halo-release-1.5 使用的是 gradle-wrapper,版本是 7.4,我换本地的 gradle-6.8.3 编译反而正常了。猜测是 IDEA 适配问题,于是升级了 IDEA 到 。。
参考
知乎好文:https://zhuanlan.zhihu.com/p/570009095
Gradle 官方文档:https://docs.gradle.org/current/userguide/userguide.html