Gradle的安装和使用
一、Gradle 的安装
1. 安装前提
- 确保已安装 Java JDK(推荐 JDK 8 及以上)。
- 配置 Java 环境变量,使得可以通过命令行使用
java
和javac
。
2. 安装 Gradle
可以从 Gradle 官网 下载适合操作系统的版本。下载 .zip
文件后,按以下步骤操作:
-
解压 Gradle 文件
将下载的文件解压到本地目录,如:C:\Gradle
。 -
配置环境变量
在系统环境变量中添加GRADLE_HOME
变量,指向 Gradle 的解压目录。同时将 Gradle 的bin
目录添加到PATH
中。-
Windows: 打开“环境变量”窗口,新增
GRADLE_HOME
环境变量,并设置其路径为 Gradle 解压目录。然后在Path
中添加%GRADLE_HOME%\bin
。 -
macOS / Linux: 可以将以下命令添加到
~/.bash_profile
或~/.zshrc
中:export GRADLE_HOME=/path/to/gradle export PATH=$PATH:$GRADLE_HOME/bin
-
-
验证安装
打开命令行工具,输入gradle -v
,如果出现 Gradle 版本信息,说明安装成功。
二、Gradle 的基本使用
1. 项目初始化
创建新项目时,可以使用 init
命令快速生成基本项目结构:
gradle init
gradle init --type java-application
初始化 Java 项目:使用 gradle init
命令创建一个基本的 Gradle 项目。
- 该命令会在当前目录创建一个 Java 项目结构。
--type java-application
参数指定了项目类型为 Java 应用程序。- 你还可以选择
java-library
来创建一个库项目。
- Gradle 初始化选项:
gradle init
运行时会提示选择配置项(例如源代码目录、测试目录等)。你可以根据项目需求选择合适的选项,也可以直接按 Enter 使用默认设置。
项目结构和配置文件
执行完初始化命令后,项目的文件夹结构通常如下:
my-gradle-project/
├── build.gradle # Gradle构建配置文件
├── settings.gradle # 项目设置文件
└── src/├── main/│ ├── java/│ │ └── App.java # 示例Java类│ └── resources/└── test/├── java/│ └── AppTest.java # 示例测试类└── resources/
配置 build.gradle
文件
build.gradle
文件中可以进行项目配置。对于一个简单的 Java 项目,build.gradle
文件内容可能如下:
plugins {id 'java'id 'application'
}group = 'com.example'
version = '1.0.0'repositories {mavenCentral()
}dependencies {// 添加项目依赖implementation 'com.google.guava:guava:31.0.1-jre'testImplementation 'org.junit.jupiter:junit-jupiter:5.8.1'
}application {mainClass = 'com.example.App' // 设置主类,替换为你的主类
}test {useJUnitPlatform()
}
plugins
:添加java
和application
插件,支持 Java 编译和运行。repositories
:指定依赖库的来源,例如 Maven Central。dependencies
:定义项目的依赖包。application
:配置项目的主类(例如com.example.App
)。test
:指定使用 JUnit 平台运行测试。
在 IntelliJ IDEA 中导入项目
- 打开 IntelliJ IDEA,选择 File > Open。
- 选择你创建的项目目录,点击 Open。
- IDEA 会自动检测到
build.gradle
文件,提示是否要使用 Gradle 构建项目。选择 Import from Gradle。 - 完成导入后,你可以在 IDEA 中查看项目结构、运行代码和测试。
3. 常用命令
-
构建项目:
gradle build gradle build -x test
该命令会编译源码、运行测试、打包为 JAR 文件等。
✨build.gradle 中配置 Maven 源
在 Gradle 项目中,如果你希望使用国内的 Maven 源来加速依赖下载,可以通过配置 repositories
块来添加国内的 Maven 源。 imit.d
文件夹通常与 Gradle 的 Maven 代理设置相关,在 build.gradle
中配置 Maven 源以提高访问速度。
使用国内 Maven 源 环境变量
M2_HOME maven地址
GRADLE_USER_HOME 本地仓库地址
在gradle的安装目录下init.d ->init.gradle
在 build.gradle
文件中,可以添加以下代码来使用国内的 Maven 源。以下是几个常用的国内 Maven 源示例:
allprojects {repositories { mavenLocal() maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }maven { name "Bstek" ; url "https://nexus.bsdn.org/content/groups/public/" }maven {url "https://mirrors.tuna.tsinghua.edu.cn/git/mirrors/maven/" // 清华大学}maven {url "https://repo.huaweicloud.com/repository/maven/" // 华为云}mavenCentral() // 可选,如果你还想保留中央仓库mavenCentral()}buildscript {repositories { maven { name "Bstek" ; url 'https://nexus.bsdn.org/content/groups/public/' } maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }}}
}
Gradle 的 imit.d
文件夹
imit.d
可能是某些组织或公司内部的特定配置文件夹,用于存放 Maven 仓库配置。具体的配置内容可能因环境而异。常见的用途包括:
- 代理配置:在企业内部网络中,通过配置 Maven 代理服务器来加速外部依赖的下载。
- 自建 Maven 仓库:如果公司有自建的 Maven 仓库,可能会在这个目录下配置相关的仓库信息。
- 缓存管理:某些公司会在此文件夹中管理依赖的缓存,确保构建过程中的稳定性和一致性。
如何配置和使用
如果你确实需要使用 imit.d
文件夹中的配置,以下是一些步骤:
-
查看配置文件:打开
imit.d
文件夹,检查其中是否有settings.xml
或其他 Maven 配置文件。 -
配置 Maven 仓库:在
settings.xml
中,可以设置镜像、代理和本地仓库等。示例
settings.xml
片段:<mirrors><mirror><id>aliyun-maven</id><mirrorOf>*</mirrorOf><url>https://maven.aliyun.com/repository/public</url></mirror> </mirrors>
-
在 Gradle 中使用:确保你的 Gradle 项目能够读取到该配置。如果你的 Gradle 构建脚本依赖于 Maven 配置,Gradle 会自动查找
~/.m2/settings.xml
。
验证配置
完成上述配置后,可以运行以下命令来验证依赖下载是否使用了新的源:
gradle build --info
该命令会显示详细的构建信息,包括所使用的 Maven 源地址。如果使用的是国内源,下载速度应该会有明显改善。
-
编译源码:
gradle compileJava
-
运行测试:
gradle test
-
清理构建:
gradle clean
清理构建目录
build/
,用于清除旧的构建结果。 -
运行应用(需要添加
application
插件):gradle run
配合
application
插件,可以直接运行 Java 应用程序。
4. 自定义任务
可以在 build.gradle
中定义自定义任务,以实现自动化需求。
task hello {doLast {println 'Hello, Gradle!'}
}
执行命令 gradle hello
,输出 Hello, Gradle!
。
5. 多模块项目
Gradle 支持多模块项目,可以在根目录的 settings.gradle
中定义子项目:
include 'moduleA', 'moduleB'
每个子模块拥有自己的 build.gradle
文件,通过 settings.gradle
中的配置将各模块关联起来。
三、Gradle 的进阶使用
-
设置构建缓存:使用缓存可以加快构建速度,通常只需要添加以下代码:
buildCache {local {enabled = true} }
-
配置并行构建:在多模块项目中,可以启用并行构建来加速:
gradle build --parallel
-
使用依赖管理:Gradle 提供
implementation
、api
等关键字区分依赖的作用域,以更灵活地管理项目依赖。
四、常见问题
-
Gradle 版本不兼容
如果项目使用了特定版本的 Gradle,可能会遇到插件不兼容问题。此时可以使用 Gradle Wrapper 来确保项目使用正确的 Gradle 版本。 -
依赖冲突
当项目依赖不同版本的同一个库时,可能会引发冲突。可以使用dependencyInsight
任务来分析并解决依赖冲突。 -
构建缓存失效
如果频繁修改构建脚本,可能会导致缓存失效,影响构建速度。可以检查缓存策略并优化构建脚本以减少不必要的变动。
在使用 Gradle、IntelliJ IDEA、Spring Boot 和 JDK 时,版本的兼容性非常重要,以确保项目可以顺利构建和运行。以下是这些工具和框架在版本上的兼容性建议:
1. Gradle 和 JDK 的兼容性
-
Gradle 的版本对 JDK 有严格的兼容性要求,使用不兼容的版本可能会导致构建失败或运行异常。以下是一些常见的兼容性建议:
Gradle 版本 JDK 版本 Gradle 7.x JDK 8 - 19 Gradle 8.x JDK 11 - 21(推荐 JDK 17) - Gradle 7.x 可以运行在 JDK 8 及以上的版本,但建议使用 JDK 11 或更高版本以获得最佳兼容性和性能。
- Gradle 8.x 支持 JDK 11 到 JDK 21,且更推荐使用 LTS 版本 JDK 17。
- JDK 8 和 JDK 17 是目前较为稳定的选择,且广泛兼容。
2. Spring Boot 与 JDK 的兼容性
-
Spring Boot 也有特定的 JDK 版本兼容要求,以确保 Spring 框架的特性和性能能够充分发挥。
Spring Boot 版本 推荐 JDK 版本 Spring Boot 2.5.x JDK 8 - 16 Spring Boot 2.6.x JDK 8 - 17 Spring Boot 2.7.x JDK 8 - 17 Spring Boot 3.x JDK 17+ - Spring Boot 2.x 系列兼容 JDK 8 以上版本,但从 2.5 版本开始引入了对 JDK 16 的支持。2.6 和 2.7 都推荐使用 JDK 17。
- Spring Boot 3.x 明确要求使用 JDK 17 以上版本,这是因为 Spring Boot 3.x 依赖 Jakarta EE API,且不再支持低于 JDK 17 的环境。
3. IntelliJ IDEA 对 Gradle、JDK 和 Spring Boot 的支持
-
IntelliJ IDEA 通常支持最新的 Gradle、JDK 和 Spring Boot 版本,但版本兼容性取决于你使用的 IDEA 版本(社区版或旗舰版)。
IntelliJ IDEA 版本 支持的 JDK 版本 Gradle 支持 Spring Boot 支持 IDEA 2021.x 及以前 JDK 8 - 16 Gradle 5.x - 7.x Spring Boot 2.x IDEA 2022.x JDK 8 - 17 Gradle 6.x - 8.x Spring Boot 2.x 和 3.x IDEA 2023.x 及更新版本 JDK 11 - 21 Gradle 7.x - 8.x Spring Boot 3.x - IntelliJ IDEA 2022.x 及以上版本完全支持 JDK 17,也可以运行最新的 Spring Boot 3.x 和 Gradle 8.x。
- IDEA 社区版和旗舰版均支持 Spring Boot 开发,但旗舰版对 Spring 框架的支持更全面,比如提供 Spring Boot DevTools、内置配置文件支持等。
4. 推荐的组合和建议
根据最新兼容性和稳定性,可以推荐以下几个组合:
-
组合 1:JDK 17 + Gradle 7.6 + Spring Boot 2.7.x
- 适合需要长期支持的项目,JDK 17 是 LTS 版本,Spring Boot 2.7.x 也较为成熟稳定,且拥有广泛的社区支持。
-
组合 2:JDK 17 + Gradle 8.x + Spring Boot 3.x
- 面向最新的 Spring Boot 特性及 Jakarta EE 的支持,适合新项目或者逐步迁移到 Spring Boot 3.x 的项目。
-
组合 3:JDK 20 + Gradle 8.x + Spring Boot 3.x
- JDK 20 是一个非 LTS 的较新版本,适合尝试新特性或实验性项目,但不推荐用于生产环境。
5. 注意事项
- 确保 Gradle Wrapper:建议在项目中使用 Gradle Wrapper(
gradlew
),它可以自动管理 Gradle 版本,使团队中的开发者和 CI/CD 系统一致。 - 升级依赖的兼容性测试:在升级 JDK、Gradle 或 Spring Boot 时,确保运行所有测试并检查所有依赖的兼容性。
- IDEA 的更新:IntelliJ IDEA 的新版本对最新 JDK 和 Gradle 的兼容性更好,建议及时更新到最新的稳定版,以便获得最佳的工具支持。
链接
https://docs.spring.io/spring-boot/docs/2.5.0/gradle-plugin/reference/htmlsingle/#introduction
https://start.spring.io/
https://gradle.org/install/
https://mvnrepository.com/
JDK不同脚本切换