Gradle的安装及换源
1. gradle简介
Gradle 和 Maven 都是 Java 生态中主流的项目构建工具,但它们在设计理念、性能和灵活性上有显著区别。以下是它们的核心对比:
2. gradle的工作机制
为什么每次idea创建gradle项目的时候,都会下载gradle
-
Gradle 的核心理念是每个项目独立配置,包括 Gradle 版本。即使你本地已安装过其他版本的 Gradle,新项目也可能指定了不同的版本(通过 gradle-wrapper.properties 文件中的 distributionUrl 定义)。
-
这种设计避免了全局版本冲突,确保项目构建的可靠性。
gradle wrapper的作用
-
创建项目时,IDEA 默认会生成或使用项目中的 Gradle Wrapper(即 gradlew 或 gradlew.bat 脚本 + gradle-wrapper.properties 文件)。
-
Wrapper 的作用是自动下载并管理指定版本的 Gradle,无需用户手动安装。这是 Gradle 官方推荐的实践,目的是保证所有协作者和构建环境的一致性。
-
首次运行时会根据配置下载对应版本的 Gradle 到本地缓存(通常位于 ~/.gradle/wrapper/dists/)。
思考:是否应该将gradle-wrapper.jar提交的git远程仓库
答案:✅ 应该提交 gradle-wrapper.jar 以及相关的 gradle-wrapper.properties 文件到 Git 仓库。原因如下:
-
一致性
Gradle Wrapper 的目的是确保所有开发者、CI 环境使用相同版本的 Gradle,避免因本地 Gradle 版本不同导致构建问题。提交 gradle-wrapper.jar 能保证所有人使用完全相同的 Wrapper 逻辑。 -
零配置构建
新克隆仓库的用户可以直接运行 ./gradlew(或 gradlew.bat)而无需手动安装 Gradle,降低入门门槛。 -
历史记录
如果未来需要回退到旧版本 Gradle,仓库中的历史记录能确保 Wrapper 的兼容性。
3. 新项目需要下载gradle的时候,加速下载
- 使用国内镜像地址替换 distributionUrl
修改项目中的 gradle-wrapper.properties 文件,将默认的distributionUrl
替换为国内镜像站(如腾讯云、阿里云等)。例如:
- 腾讯云镜像
distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.4-bin.zip
- 阿里云镜像
distributionUrl=https\://mirrors.aliyun.com/gradle/gradle-8.4-bin.zip
4. 配置gradle 阿里源
-
创建或修改全局初始化文件:
路径:~/.gradle/init.gradle
(Windows:%USERPROFILE%\.gradle\init.gradle
) -
编辑
init.gradle
文件,新增如下内容// 配置所有项目的依赖仓库 allprojects { repositories { mavenLocal() // 阿里云镜像(优先使用) maven { url 'https://maven.aliyun.com/repository/public/' allowInsecureProtocol = true // Gradle 7.0+ 需要显式声明 } maven { url 'https://maven.aliyun.com/repository/central' allowInsecureProtocol = true } maven { url 'https://maven.aliyun.com/repository/google/' allowInsecureProtocol = true } // 必须保留的分号(如果后面有其他表达式) ; // 保留官方仓库(备用) mavenCentral() google() } } settingsEvaluated { settings -> settings.pluginManagement { repositories { maven { url 'https://maven.aliyun.com/repository/gradle-plugin/' allowInsecureProtocol = true } // 显式添加分号分隔 ; // Gradle官方插件仓库 gradlePluginPortal() } } }
阿里云仓库地址来源:
https://developer.aliyun.com/mvn/view
5. gradle 缓存目录
这部分内容参考博客:https://blog.youkuaiyun.com/feinifi/article/details/81458639
gradle可以指定本地maven本地仓库
allprojects {
repositories {
// 本地仓库,地址是maven本地仓库地址
mavenLocal()
}
}
但是,如果本次仓库没有,gradle会从指定的远程仓去下载,但是下载下来的 jar 包并不是存储在 maven 本地仓库中,而是存放在了自己的缓存目录中(默认地址:~/.gradle/caches/modules-2/file-2.1/ )