Gradle使用教程

article/2025/10/6 3:44:23

图片

前言

相信使用Java的同学都用过Maven,这是一个非常经典好用的项目构建工具。但是如果你经常使用Maven,可能会发现Maven有一些地方用的让人不太舒服:

  • Maven的配置文件是XML格式的,假如你的项目依赖的包比较多,那么XML文件就会变得非常非常长;

  • XML文件不太灵活,假如你需要在构建过程中添加一些自定义逻辑,搞起来非常麻烦;

  • Maven非常的稳定,但是相对的就是对新版java支持不足,哪怕就是为了编译java11,也需要更新内置的Maven插件;

如果你对Maven的这些缺点也有所感触,准备尝试其他的构建工具,那么你可以试试gradle,这是一个全新的java构建工具,解决了Maven的一些痛点。

安装Gradle

最传统的安装方法就是去gradle官网下载二进制包,解压,然后将路径添加到环境变量中。如果你没什么其他需求,可以使用这种安装方式。但是,gradle是一个非常新潮的项目,每隔几个月就会发布一个新版本,这种方式可能跟不上gradle的更新速度。

所以我更加推荐使用包管理器来安装gradle。如果你使用linux系统,那么不必多说。如果你使用Windows系统,我推荐使用scoop包管理器来安装gradle。它安装方便,而且使用SHIM目录来管理环境变量,在各种工具中配置gradle也很方便。

当然,如果你完全不喜欢安装这么多乱七八糟的东西,那也可以使用gradle。gradle提供了一个名为gradle wrapper的工具,可以在没有安装gradle的情况下使用gradle。好吧,其实它就是个脚本文件,当你运行wrapper脚本的时候,如果脚本发现你电脑里没有gradle,就会自动替你下载安装一个。现在甚至还出现了Maven wrapper,也是个脚本文件,可以自动安装Maven。

在之前相信一些朋友听说过gradle,然后尝试使用它,结果因为速度太慢,最后放弃了。之前我也因为gradle的速度,放弃了它一段时间。不过现在使用gradle的话会方便很多。gradle官方在中国开设了,CDN,使用gradle wrapper的时候下载速度非常快。可以说现在是一个学习使用gradle的好时候。

idea创建

gradle项目

图片

IDEA默认就会使用gradle wrapper来创建项目,所以无需安装gradle也可以正常运行。这时候项目结构应该类似下图所示,使用Maven的同学应该比较熟悉,因为这和Maven的项目结构几乎完全一致。gradle文件夹和gradlew那几个文件就是gradle wrapper的文件,而.gradle后缀名的文件正是gradle的配置文件,对应于Maven的pom.xml。

图片

gradle wrapper的优点之一就是可以自定义下载的gradle的版本,如果是团队协作的话,这个功能就非常方便,简单设置即可统一团队的构建工具版本。这里我就设定成目前最新的gradle 6.4.默认下载安装的是bin版,仅包含二进制。如果你使用IDEA的话,它会推荐下载all版,包含源代码,这样IDEA就可以分析源代码,提供更加精确的gradle脚本支持。

图片

依赖管理

gradle依赖配置项仅需一行。

dependencies {    testImplementation 'junit:junit:4.13'    implementation 'com.google.code.gson:gson:2.8.6'}

推荐一下Jetbrains的package search网站,是寻找maven和gradle依赖包的最佳网站,可以非常轻松的搜索和使用依赖项。

图片

gradle依赖的粒度控制相较于Maven也更加精细,maven只有compile、provided、test、runtime四种scope,而gradle有以下几种scope:

1.implementation,默认的scope。implementation的作用域会让依赖在编译和运行时均包含在内,但是不会暴露在类库使用者的编译时。举例,如果我们的类库包含了gson,那么其他人使用我们的类库时,编译时不会出现gson的依赖。

2.api,和implementation类似,都是编译和运行时都可见的依赖。但是api允许我们将自己类库的依赖暴露给我们类库的使用者。

3.compileOnly和runtimeOnly,这两种顾名思义,一种只在编译时可见,一种只在运行时可见。而runtimeOnly和Maven的provided比较接近。

4.testImplementation,这种依赖在测试编译时和运行时可见,类似于Maven的test作用域。

5.testCompileOnly和testRuntimeOnly,这两种类似于compileOnly和runtimeOnly,但是作用于测试编译时和运行时。

通过简短精悍的依赖配置和多种多样的作用与选择,Gradle可以为我们提供比Maven更加优秀的依赖管理功能。

gradle的任务和插件

gradle的配置文件是一个groovy脚本文件,在其中我们可以以编程方式自定义一些构建任务。因为使用了编程方式,所以这带给了我们极大的灵活性和便捷性。打个比方,现在有个需求,要在打包出jar的时候顺便看看jar文件的大小。在gradle中仅需在构建脚本中编写几行代码即可。而在Maven中则需要编写Maven插件,复杂程度完全不在一个水平。

当然,Maven发展到现在,已经存在了大量的插件,提供了各式各样的功能可以使用。但是在灵活性方面还是无法和Gradle相比。而且Gradle也有插件功能,现在发展也十分迅猛,存在了大量非常好用的插件,例如gretty插件。gretty原来是社区插件,后来被官方吸收为官方插件,可以在Tomcat和jetty服务器上运行web项目,比Maven的相关插件功能都强大。

虽然gradle可以非常灵活的编写自定义脚本任务,但是其实一般情况下我们不需要编写构建脚本,利用现有的插件和任务即可完成相关功能。在IDEA里,也可以轻松的查看当前gradle项目中有多少任务,基本任务如build、test等Maven和Gradle都是相通的。

图片

配置镜像

Maven官方仓库的下载速度非常慢,所以一般我们要配置国内的镜像源。gradle在这方面和Maven完全兼容,因此只需稍微配置一下镜像源,即可使用Maven的镜像。如果你用gradle构建过项目,应该就可以在用户目录的.gradle文件夹下看到gradle的相关配置和缓存。

之前wrapper下载的gradle也存放在该文件夹下,位置是wrapper/dists。

图片

而依赖的本地缓存在caches\modules-2\files-2.1文件夹下。目录结构和Maven的本地缓存类似,都是包名+版本号的方式,但是gradle的目录结构最后一层和Maven不同,这导致它们无法共用本地缓存。

图片

言归正传,在gradle中配置下载镜像需要在.gradle文件夹中直接新建一个init.gradle初始化脚本,脚本文件内容如下。这样一来,gradle下载镜像的时候就会使用这里配置的镜像源下载,速度会快很多。再加上gradle wrapper在中国设置了CDN,现在使用gradle的速度应该会很快。

allprojects {   repositories {       maven {           url "https://maven.aliyun.com/repository/public"       }       maven {           url "https://maven.aliyun.com/repository/jcenter"       }       maven {           url "https://maven.aliyun.com/repository/spring"       }       maven {           url "https://maven.aliyun.com/repository/spring-plugin"       }       maven {           url "https://maven.aliyun.com/repository/gradle-plugin"       }       maven {           url "https://maven.aliyun.com/repository/google"       }       maven {           url "https://maven.aliyun.com/repository/grails-core"       }       maven {           url "https://maven.aliyun.com/repository/apache-snapshots"       }   }}

当然,如果你有代理的话,其实我推荐你直接为gradle设置全局代理。因为gradle脚本实在是太灵活了,有些脚本中可能依赖了github或者其他地方的远程脚本。这时候上面设置的下载镜像源就不管用了。

所以有条件还是干脆直接使用全局代理比较好。设置方式很简单,在.gradle文件夹中新建gradle.properties文件,内容如下。中间几行即是设置代理的配置项。当然其他几行我也建议你设置一下,把gradle运行时的文件编码设置为UTF8,增加跨平台兼容性。

org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8systemProp.http.proxyHost=127.0.0.1systemProp.http.proxyPort=10800systemProp.https.proxyHost=127.0.0.1systemProp.https.proxyPort=10800systemProp.file.encoding=UTF-8org.gradle.warning.mode=all

代为什么使用gradle?

如果你Maven已经非常熟悉了,可能不太愿意使用gradle,因为貌似没有必要。但是既然gradle出现了,就说明有很多人对Maven还是有一定的意见。因此在这里我来总结一下gradle相比maven的优势。

  • **速度,**gradle使用构建缓存、守护进程等方式提高编译速度。结果就是gradle的编译速度要远超maven,平均编译速度比Maven快好几倍,而且项目越大,这个差距就越明显。

图片

  • **灵活性,**gradle要比Maven灵活太多,虽然有时候灵活并不是一件好事情。但是大部分情况下,灵活一点可以极大的方便我们。Maven死板的XML文件方式做起事情来非常麻烦。很多Maven项目都通过执行外部脚本的方式来完成一些需要灵活性的工作。而在gradle中配置文件就是构建脚本,构建脚本就是编程语言(groovy编程语言),完全可以自给自足,无需外部脚本。

  • **简洁性,**完成同样的功能,gradle脚本的长度要远远短于maven配置文件的长度。虽然很多人都说XML维护起来不麻烦,但是我觉得,维护一个光是依赖就有几百行的XML文件,不见得就比gradle脚本简单。

也许是因为我上面说的原因,也许有其他原因,不得不承认的一件事情就是gradle作为一个新兴的工具已经有了广泛的应用。spring等项目已经从Maven切换到了gradle。开发安卓程序也只支持gradle了。因此不管是否现在需要将项目从maven切换到gradle,但是至少学习gradle是一件必要的事情。

图片

点击下方卡片/微信搜索,关注公众号“天宇文创意乐派”(ID:gh_cc865e4c536b)

听说点赞和关注本号的都找到漂亮的小姐姐了哟且年后必入百万呀!!

往期推荐

[

Redis如何高效实现点赞、取消点赞功能

](http://mp.weixin.qq.com/s?__biz=MzI4MDQ5MTUzMg==&mid=2247489069&idx=4&sn=612423cbc2e59a539882e7e3b283e9f0&chksm=ebb6f54edcc17c5859c4697a0d1db275b217a72e5572c628312047da6f94e89f8c1ac3427fb0&scene=21#wechat_redirect)

[

MyBatis插入大量数据效率对比:foreach、SqlSession、sql三种方式批量插入

](http://mp.weixin.qq.com/s?__biz=MzI4MDQ5MTUzMg==&mid=2247489008&idx=1&sn=ede73304620c7a43601b5793469e9221&chksm=ebb6f693dcc17f8526733a26f2e2037d1521e14cb9c7c098ae71cbc110fa01046870b63a9c89&scene=21#wechat_redirect)

[

字符集问题 导致insert语句报错,浪费了你好多时间!!

](http://mp.weixin.qq.com/s?__biz=MzI4MDQ5MTUzMg==&mid=2247488525&idx=2&sn=c3be7219f3485029ec1d05d2b666e23f&chksm=ebb6f76edcc17e7880c2979e6f664071cd1b3e64a4965da74233e6e2dddf12447b8dc73e15b1&scene=21#wechat_redirect)

[

Spring Boot 2.6 发布了和一些重要变更!!

](http://mp.weixin.qq.com/s?__biz=MzI4MDQ5MTUzMg==&mid=2247488467&idx=1&sn=bac88852ac97b3710f79310ddcd2808b&chksm=ebb6f0b0dcc179a6106c17aa279624a06801d6580ef99e050e6aa3559c455faa3ddfda6b6e24&scene=21#wechat_redirect)

[

Spring Boot + EasyExcel 导入导出,好用到爆,可以扔掉 POI 了!

](http://mp.weixin.qq.com/s?__biz=MzI4MDQ5MTUzMg==&mid=2247488467&idx=2&sn=8f60e133c9b05be3c787e40fc63f3846&chksm=ebb6f0b0dcc179a6239d6b7243e0d49c43eada6120e925887c74a10577438cd9fb808be958d4&scene=21#wechat_redirect)


http://chatgpt.dhexx.cn/article/PWTYY0Vc.shtml

相关文章

gradle入门简介以及安装

一、简介 java作为一门世界级主流编程语言,有一款高效易用的项目自动化构建工具是java开发者共同追求的心愿和目标。先是2000年Ant,后有2004年Maven两个工具的诞生,都在java市场上取得了巨大的成功。但是二者都有一定的不足和局限性。 2012年…

【构建工具】Gradle中文教程

文章目录 Gradle 简介Gradle 概述基于声明的构建和基于约定的构建为以依赖为基础的编程方式提供语言支持构建结构化深度 APIGradle 的扩展多项目构建多种方式管理依赖Gradle 是第一个构建集成工具易于移植GroovyThe Gradle wrapper自由和开源 为什么使用 Groovy? Gradle 安装先…

Gradle 入门教程(一):Gradle是什么

这是一篇Gradle的入门教程 一、 Gradle是什么 1.1 构建工具 要解释Gradle是什么,首先要搞清楚一个名词——构建工具(Build Tool)。 构建工具,顾名思义就是用于构建(Build)的工具,构建包括编…

Gradle 的下载安装教程

Gradle 8.0.1 下载安装教程 笔者的环境: Java 17.0.1 Gradle 8.0.1 Windows 10 教育版 64位 在继续阅读本教程之前,需要先完成 JDK 的安装。JDK 需要选择 8 及以上的版本。关于 JDK 的安装,可见笔者的另一篇博客: Java 的下载…

Gradle初级使用教程

一.Gradle简介 Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。 二.为什么使用Gradle Gra…

Gradle 简易入门教程

作者: Yann 来源:原力注入 Gradle 是一种构建工具,它抛弃了基于XML的构建脚本,取而代之的是采用一种基于 Groovy(现在也支持 Kotlin)的内部领域特定语言。 Gradle特点 Gradle是很成熟的技术,可…

Gradle的详细安装配置及使用教程

Gradle的详细安装配置及使用教程 Gradle的安装 到Gradle官网,官网地址:https://gradle.org/releases/。下载对应的版本,本文安装的是 4.3.1 版本。 下载完成后解压 环境配置 配置环境变量,新建名为 GRADLE_HOME 值为你的 Gr…

Gradle的使用教程

一、相关介绍 Gradle是一个好用的构建工具 ,使用它的原因是: 配置相关依赖代码量少,不会像maven一样xml过多 打包编译测试发布都有,而且使用起来方便 利用自定义的任务可以完成自己想要的功能 二、安装 下载地址http://services…

Gradle最详细教程,关于Gradle,学习这些就够了.......

目录 Gradle的简介 Groovy语言的学习 Groovy环境变量的配置 第一个Groovy项目 变量的定义 字符串的定义 字符串的常用方法 流程控制 switch for 闭包 基本技能 闭包的使用场景 闭包中的变量 列表 定义方式 添加和删除 排序和查找 映射map map的操作 查找 …

Gradle简要教程

1 什么是Gradle 最初Android的开发是用Eclipse进行,Eclipse之所以能够用来开发Android项目,是因为一个叫做ADT(Android Developer Tools)的东西,使用ADT,我们只需要写好代码,然后直接在Eclip…

一、Gradle入门

文章目录 一、Gradle入门1.1 Gradle 简介1.2 常见的项目构建工具1.3 Gradle 安装1.3.1 Gradle 安装说明1.3.2 安装 JDK1.3.3 下载并解压到指定目录1.3.4 配置环境变量1.3.5 检测是否安装成功 1.4 Gradle 项目目录结构1.5 Gradle 创建第一个项目1.5.1 Gradle 中的常用命令1.5.2 …

gradle入门教程

一、gradle安装及配置 1、下载及安装 去gradle官网下载对应gradle安装包。首页点击“Install Gradle”,对应页面的“Installing manually”下点击download,选择对应版本下载即可。有Binary-only和Complete两种。Complete是带了文档的。然后解压到任意目…

Gradle 学习 ----Gradle 入门

1 、Gradle入门 Gradle入门 1 、Gradle入门1. 1 、Gradle简介1. 2 、常见的项目构建工具1. 3 、Gradle安装1. 3. 1 、Gradle安装说明1. 3. 2 、安装JDK1. 3. 4 、配置环境变量1. 3. 5 、检测是否安装成功1. 4 、Gradle项目目录结构1. 5 、Gradle创建第一个项目扩展:命令创建项目…

找不到适合自己的工作很迷茫怎么办?

有些人在求职的过程中,可能会遇到这样的情况:发offer的公司自己不想去,想去的公司又不愿意给自己一个机会,努力了很久但一直找不到合适的工作。这个时候,如果继续每天在家无所事事的话,很可能会越想越多&am…

找不到合适的工作怎么办

这是我在分答上收到的几个问题: 我刚刚为了一份喜欢的工作放弃了别人介绍的工作,是不是很冲动?职业上经常讲匹配度,但是在现实中为什么匹配度很难落地呢?你越不想要的,他越出现,你想要的&#x…

时局不利,如何化解职场焦虑?

部分数据来源:ChatGPT 在不景气的经济环境下,大多数求职者都面临极大的压力,而技术人员又是其中之一。他们不仅需要不断学习新技能,还需要面对工作市场的竞争,并努力将自己的技能提升到所需的水平。一旦被拒绝或无法找…

工作琐事太多怎么办_待办的事情太多,如何有条不紊的进行工作呢?

【子亦观点】:事情太多难以理清是很多人都遇到的问题,协调不好就会出现混乱的状态和低效的结果,更甚者会因此产生焦虑情绪。所以必须掌握科学合理的管理方法,并有效运用到工作和生活中,减轻压力和负担。 什么原因导致处理事务容易混乱? 1.总是被突发事件打断 当你坐到电脑…

找不着工作怎么办?以下六条一定要听我说。

找不着工作怎么办? 如果今年找不到工作,以下六条一定要听我说。 第一条呢,今年找不着工作可能跟你的能力没有太大的关系。所以不要沮丧,为什么?因为今年大环境非常糟糕,大厂动不动裁员。1/3还在继续裁。你…

如果一份工作让你时常感到焦虑,你会不会立马辞职?

点击上面↑「爱开发」关注我们 每晚10点,捕获技术思考和创业资源洞察 优越感可以让我们变得更自信,能适当有效缓解职场焦虑症,因为一个有成就感的人的内心通常会充满力量,正能量满满。 如果一份工作让你时常感到焦虑,你…

找不到工作怎么办,多半是“废了”,按这3步你也能找到工作

第一步,掂量自己 我们先算一下自己有几斤几两,看看自己的适合什么位置,避免做到自大或者是贬低自己,那么我们的工作中就能做的比较顺利。 掂量自己也是对自己的总结,在总结中我们就可以知道自己的红点和黑点&#xf…