大家好,欢迎来到IT知识分享网。
1、概述
Gradle 是一种流行的构建自动化工具,用于在软件开发过程中自动化执行各种任务,如编译、运行测试、打包和部署【可以理解成和Maven的作用一样,只不过更灵活强大一些】。以下是Gradle的简要介绍:
1.1、特点和优势
- 灵活性:支持多语言项目,易于定制和扩展。
- 性能:采用增量构建和缓存机制,提高构建速度。
- 可读性:使用Groovy或Kotlin等DSL编写构建脚本,易于阅读和维护。
- 插件生态系统:丰富的插件库,支持各种工具和框架的集成。
- 多项目构建:对多模块项目和依赖管理提供良好支持。
1.2、工作原理
Gradle基于领域特定语言(DSL)来描述构建过程。它使用Groovy或Kotlin语言编写脚本,这些脚本定义了项目的结构、依赖和所需操作。
Gradle会根据这些脚本文件来执行各种构建任务,它会自动处理依赖关系、并行执行任务,并在必要时重新构建已经改变的部分。
1.3、应用领域
Gradle广泛应用于Java、Kotlin、Groovy等语言的项目中,同时也被用于构建Android应用程序。它还可以被用于构建C/C++、JavaScript等不同类型的项目。
总之,Gradle作为一款灵活且功能强大的构建工具,为开发人员提供了高效构建和自动化的能力,有助于简化项目的管理和部署过程。
2、安装
2.1、官网地址
2.2、下载列表
此次安装用的是7.6.3版本,如需其他版本请自行下载即可,由于Gradle是基于Java的,因此首先要安装Java JDK,本文不做详述;
2.3、解压安装
将下载的zip压缩包解压后放到指定文件夹即可,如下图:
2.4、配置环境变量
以上仅完成了gradle的环境变量配置,由于gradle需要下载相关依赖包,默认是在c盘里面,后续可能会占用较多磁盘,因此增加一个环境变量的配置,修改下载下来的依赖的存储位置,可以理解成maven的location标签配置,具体如下图:
2.5、验证是否成功
以下图片证明安装成功:
3、配置全局脚本
可以在gradle的init.d目录下,创建以.gradle
结尾的文件,.gradle
文件可以实现在build开始之前执行。因此可以在这个文件中配置预先加载的操作。当然你也可以直接配置到具体的项目里面,使用方式和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/" } mavenCentral() } buildscript { repositories { maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' } maven { name "Bstek" ; url 'https://nexus.bsdn.org/content/groups/public/' } maven { name "M2" ; url 'https://plugins.gradle.org/m2/' } } } }
allprojects
:这部分表示我们正在配置所有项目的仓库设置。这确保了对整个构建进行全局设置。repositories
:这一部分指定了项目的依赖仓库。在这里,我们使用了几种不同的仓库来源:mavenLocal()
:这行代码告诉 Gradle 使用本地 Maven 仓库作为第一个依赖源。maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
:这表示我们向 Gradle 声明了一个名为 “Alibaba” 的远程 Maven 仓库,指定了阿里云镜像的地址。maven { name "Bstek" ; url "https://nexus.bsdn.org/content/groups/public/" }
:这一行声明了一个名为 “Bstek” 的远程 Maven 仓库,指定了 Nexus 私有仓库的地址,可以根据自己实际情况修改配置。mavenCentral()
:最后,我们指定了 Maven 中央仓库,作为备用的依赖源,直接声明即可,无需额外配置。
buildscript
:这部分指定了构建脚本的仓库配置。repositories
:在这里,我们又一次定义了构建脚本的仓库配置,包括了多个 Maven 仓库:maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }
:这里再次声明了名为 “Alibaba” 的 Maven 仓库,以确保构建脚本能够从阿里云镜像获取依赖。maven { name "Bstek" ; url 'https://nexus.bsdn.org/content/groups/public/' }
:同样地,我们也声明了名为 “Bstek” 的 Maven 仓库,以供构建脚本使用。maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }
:最后,我们指定了来自 plugins.gradle.org 的额外 Maven 仓库,用于获取 Gradle 插件。
通过这样的配置,Gradle 将会优先使用本地 Maven 仓库,如果找不到所需的依赖,它会依次尝试使用阿里云镜像、Nexus 私有仓库和 Maven 中央仓库,同时还会从额外的插件仓库中获取 Gradle 插件。
注意点:
配置中有 mavenLocal() 就是说明首先使用 maven 的本地仓库获取依赖。因此需要配置 M2_HOME 环境变量,但是本地实际上有木有都是没有影响的,解释如下:
添加 mavenLocal() 依赖仓库并不要求你在电脑上安装 Maven。这是因为 mavenLocal() 实际上指向的是本地 Maven 仓库目录,而不是 Maven 工具本身。 当你在 Gradle 项目中使用 mavenLocal() 时,Gradle 将尝试从默认的本地 Maven 仓库目录(通常在用户目录下的 .m2 文件夹)中解析依赖。如果你的电脑上没有安装 Maven,那么该目录可能为空或者不存在。 在这种情况下,如果你尝试从 mavenLocal() 中解析依赖,Gradle 可能会失败,因为它无法在本地 Maven 仓库中找到相应的依赖。但这并不会影响你的系统或其他项目的正常运行。 因此,如果你没有安装 Maven,且没有在本地 Maven 仓库中手动安装依赖,添加 mavenLocal() 依赖仓库对你的项目实际上没有积极的影响。一般情况下,只有在你确切知道本地 Maven 仓库中存在所需的依赖时才会使用 mavenLocal()。
4、集成IDEA
首先创建一个springboot项目,步骤如下:
以上便完成了gradle与idea的集成;
5、目录结构分析
src结构为项目目录;gradle文件夹 存放gradle wrapper相关文件;build.gradle相当于maven里面的pom.xml,setting.gradle用于多模块的配置;
Gradle Wrapper 是一个用于管理和分发 Gradle 版本的工具,它允许你在项目中使用特定版本的 Gradle 而无需手动安装。该工具附带了一组脚本和文件,使得项目能够在不同的环境中始终使用相同版本的 Gradle 进行构建。
6、常用功能
6.1、常用命令对比
命令 | Gradle | Maven |
---|---|---|
构建项目 | ./gradlew build |
mvn clean install |
清理项目 | ./gradlew clean |
mvn clean |
运行测试 | ./gradlew test |
mvn test |
生成项目文档 | ./gradlew javadoc |
mvn javadoc:javadoc |
发布到远程仓库 | ./gradlew publish |
mvn deploy |
列出项目依赖 | ./gradlew dependencies |
mvn dependency:tree |
扫描项目依赖漏洞 | ./gradlew dependencyCheckAnalyze |
mvn org.owasp:dependency-check-maven:check |
创建新项目 | 使用初始化插件,如 Spring Initializr | mvn archetype:generate |
6.2、常用功能
Gradle 提供了许多常用功能,包括但不限于以下内容:
- 增加依赖:通过在构建脚本中添加依赖声明来引入外部库。例如使用
implementation
关键字添加编译时依赖,或者使用testImplementation
添加测试时依赖。dependencies { implementation 'com.example:library:1.0.0' testImplementation 'junit:junit:4.12' }
- 剔除依赖:有时候你可能需要排除特定的传递性依赖。你可以使用
exclude
方法来剔除依赖项。dependencies { implementation('com.example:library:1.0.0') { exclude group: 'org.unwanted', module: 'unwanted-module' } }
- 全局依赖版本管理:使用
dependencyManagement
插件进行全局依赖版本管理。这样一来,你就可以在单独的位置定义和管理依赖库的版本,而不需要在每个模块中都重复声明。dependencyManagement { imports { mavenBom 'group:artifact:version' } }
- 增加插件:通过
plugins
块或者apply plugin
语句来增加插件。Gradle 提供了很多内置的插件,同时也可以使用第三方插件。plugins { id 'java' id 'application' }
- 自定义任务:你可以创建自定义任务来执行项目特定的操作,比如清理临时文件、运行定制化的构建过程等等。
这些只是 Gradle 提供的众多功能之一。Gradle 还提供了许多其他强大的功能,比如多项目构建、增量构建、构建缓存、定制化构建逻辑等等。Gradle 的灵活性使得它成为一个广泛使用的构建工具,能够满足各种不同规模和类型的项目需求,具体的请自行探索。
7、参考文献
- Gradle Build Tool
- 1–Gradle入门 – 简介、安装、目录结构、创建项目_gradle install-CSDN博客
添加公众号了解更多,定期分享、绝对实用,绝对对你有帮助!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/123193.html