网站首页 > 技术教程 正文
Gradle 使用手册
一、Gradle 简介
Gradle 是一个基于 Apache Ant 和 Apache Maven 概念的项目自动化构建开源工具,它使用一种基于 Groovy 的特定领域语言(DSL)来声明项目设置,摒弃了基于 XML 的各种繁琐配置。在 Android 开发、Java 开发等领域被广泛应用,能极大提高项目构建的效率和灵活性。
二、安装与环境配置
(一)安装
1. 手动下载安装
- 访问 Gradle 官方网站(https://gradle.org/releases/),选择合适的版本进行下载。一般建议选择最新的稳定版本。
- 下载完成后,解压到你希望安装的目录,例如 D:\gradle-7.4。
2. 使用 SDKMAN! 安装(适用于 Linux、macOS 等系统)
- 首先安装 SDKMAN!,在终端执行以下命令:
curl -s "https://get.sdkman.io" | bash
- 安装完成后,重启终端,然后执行以下命令安装 Gradle:
sdk install gradle 7.4
(二)环境配置
1. Windows 系统
- 打开“系统属性” -> “高级系统设置” -> “环境变量”。
- 在“系统变量”中,新建变量 GRADLE_HOME,变量值为 Gradle 的安装目录,如 D:\gradle-7.4。
- 找到“系统变量”中的 Path 变量,编辑它,添加 %GRADLE_HOME%\bin。
- 打开命令提示符,输入 gradle -v,如果显示 Gradle 的版本信息,则说明安装和配置成功。
2. Linux 和 macOS 系统
- 打开终端,编辑 ~/.bashrc 或 ~/.zshrc 文件:
export GRADLE_HOME=/path/to/gradle
export PATH=$PATH:$GRADLE_HOME/bin
- 保存文件后,执行 source ~/.bashrc 或 source ~/.zshrc 使配置生效。
- 同样输入 gradle -v 验证安装是否成功。
三、基本概念
(一)项目(Project)
在 Gradle 中,一个项目通常代表一个软件组件,比如一个 Java 库、一个 Web 应用程序或者一个 Android 应用。一个 Gradle 构建可以包含一个或多个项目。
(二)任务(Task)
任务是 Gradle 构建的基本执行单元,它代表了一个具体的操作,例如编译代码、运行测试、打包应用等。每个任务都有一个唯一的名称,并且可以依赖于其他任务。
(三)构建脚本(Build Script)
构建脚本是用 Groovy 或 Kotlin 编写的文件,通常命名为 build.gradle,它定义了项目的结构、依赖关系和任务。
四、基本使用
(一)创建一个简单的 Gradle 项目
1. 创建项目目录
mkdir my-gradle-project
cd my-gradle-project
2. 初始化 Gradle 项目
gradle init --type basic
这个命令会创建一个基本的 Gradle 项目结构,包括 build.gradle 文件和 .gradle 目录。
(二)编写构建脚本
打开 build.gradle 文件,以下是一个简单的 Java 项目的构建脚本示例:
// 应用 Java 插件
apply plugin: 'java'
// 设置项目的源文件和测试文件目录
sourceSets {
main {
java {
srcDirs = ['src/main/java']
}
}
test {
java {
srcDirs = ['src/test/java']
}
}
}
// 设置项目的依赖
repositories {
mavenCentral()
}
dependencies {
testImplementation 'junit:junit:4.13.2'
}
// 定义一个自定义任务
task hello {
doLast {
println 'Hello, Gradle!'
}
}
(三)执行任务
1. 执行自定义任务
在项目根目录下,执行以下命令:
gradle hello
这将输出 Hello, Gradle!。
2. 编译代码
gradle compileJava
这个命令会编译 src/main/java 目录下的 Java 代码。
3. 运行测试
gradle test
这将执行 src/test/java 目录下的测试代码。
4. 打包项目
gradle jar
这个命令会将编译后的代码打包成一个 JAR 文件,存放在 build/libs 目录下。
五、依赖管理
(一)仓库配置
Gradle 支持多种类型的仓库,如 Maven 中央仓库、本地仓库等。在 build.gradle 文件中,可以通过 repositories 块来配置仓库:
repositories {
// 使用 Maven 中央仓库
mavenCentral()
// 使用本地 Maven 仓库
mavenLocal()
// 使用自定义的 Maven 仓库
maven {
url 'https://mycompany.com/maven-repo'
}
}
(二)添加依赖
在 dependencies 块中添加项目的依赖:
dependencies {
// 编译时依赖
implementation 'com.google.guava:guava:31.0.1-jre'
// 测试时依赖
testImplementation 'junit:junit:4.13.2'
}
(三)依赖范围
- implementation:用于编译和运行时依赖,对外部模块隐藏依赖信息。
- api:用于编译和运行时依赖,会将依赖信息暴露给外部模块。
- testImplementation:仅用于测试代码的依赖。
六、插件使用
(一)内置插件
Gradle 提供了许多内置插件,如 Java 插件、Android 插件等。使用内置插件只需要在 build.gradle 文件中应用即可:
apply plugin: 'java'
(二)第三方插件
可以通过 plugins 块或 apply plugin 语句来应用第三方插件。例如,使用 Spring Boot 插件:
plugins {
id 'org.springframework.boot' version '2.6.7'
}
七、多项目构建
当项目规模较大时,可能需要将项目拆分成多个子项目,每个子项目有自己的 build.gradle 文件。以下是一个简单的多项目构建示例:
(一)项目结构
my-multi-project
├── settings.gradle
├── project-a
│ └── build.gradle
└── project-b
└── build.gradle
(二)settings.gradle 文件
include 'project-a', 'project-b'
这个文件定义了项目包含的子项目。
(三)子项目的 build.gradle 文件
project-a/build.gradle:
apply plugin: 'java'
group = 'com.example'
version = '1.0'
repositories {
mavenCentral()
}
dependencies {
implementation 'com.google.guava:guava:31.0.1-jre'
}
project-b/build.gradle:
apply plugin: 'java'
group = 'com.example'
version = '1.0'
repositories {
mavenCentral()
}
dependencies {
implementation project(':project-a')
}
(四)执行多项目构建
在根项目目录下,可以执行以下命令来构建所有子项目:
gradle build
八、总结
Gradle 是一个强大而灵活的项目自动化构建工具,通过合理使用它的任务、依赖管理、插件等功能,可以大大提高项目的开发和构建效率。希望本手册能帮助你快速上手 Gradle,并在实际项目中发挥它的优势。
猜你喜欢
- 2025-07-03 阿里P8大佬总结的Nacos入门笔记,从安装到进阶小白也能轻松学会
- 2025-07-03 Linux环境下,Jmeter压力测试的搭建及报错解决方法
- 2025-07-03 Java 在Word中合并单元格时删除重复值
- 2025-07-03 解压缩软件哪个好用?4款大多数人常用的软件~
- 2025-07-03 Hadoop高可用集群搭建及API调用(hadoop3高可用)
- 2025-07-03 lombok注解@Data没有toString和getter、setter问题
- 2025-07-03 Apache Felix介绍(apache fineract)
- 2025-07-03 Spring Boot官方推荐的Docker镜像编译方式-分层jar包
- 2025-07-03 字节二面:为什么SpringBoot的 jar可以直接运行?
- 2025-07-03 偷天换日,用JavaAgent欺骗你的JVM
你 发表评论:
欢迎- 最近发表
-
- 阿里P8大佬总结的Nacos入门笔记,从安装到进阶小白也能轻松学会
- Linux环境下,Jmeter压力测试的搭建及报错解决方法
- Java 在Word中合并单元格时删除重复值
- 解压缩软件哪个好用?4款大多数人常用的软件~
- Hadoop高可用集群搭建及API调用(hadoop3高可用)
- lombok注解@Data没有toString和getter、setter问题
- Apache Felix介绍(apache fineract)
- Spring Boot官方推荐的Docker镜像编译方式-分层jar包
- Gradle 使用手册(gradle详细教程)
- 字节二面:为什么SpringBoot的 jar可以直接运行?
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)