Gradle下载安装教程
1、Gradle 入门
1.1、Gradle 简介
Gradle 是一款Google 推出的基于 JVM、通用灵活的项目构建工具,支持 Maven,JCenter 多种第三方仓库;支持传递性依赖管理、废弃了繁杂的xml 文件,转而使用简洁的、支持多种语言(例如:java、groovy 等)的 build 脚本文件。

官网地址: https://gradle.org/
学习Gradle 的原因:
- 目前已经有相当一部分公司在逐渐使用Gradle作为项目构建工具了。
- 作为Java开发程序员,如果想下载Spring、SpringBoot等Spring家族的源码,基本上基于Gradle构建的。
总之,虽然目前市面上常见的项目构建工具有Ant、Maven、Gradle,主流还是Maven,但是未来趋势Gradle。
1.2、常见的项目构建工具
- Ant: 2000 年 Apache 推出的纯Java 编写构建工具,通过 xml[build.xml]文件管理项目
- 优点:使用灵活,速度快(快于 gradle 和 maven),
- 缺点:Ant 没有强加任何编码约定的项目目录结构,开发人员需编写繁杂XML 文件构建指令,对开发人员是一个挑战。
- Maven: 2004 年Apache 组织推出的再次使用xml 文件[pom.xml]管理项目的构建工具。
- 优点: 遵循一套约定大于配置的项目目录结构,使用统一的GAV 坐标进行依赖管理, 侧重于包管理。
- 缺点:项目构建过程僵化,配置文件编写不够灵活、不方便自定义组件,构建速度慢于 gradle。
- Gradle: 2012 年Google 推出的基于Groovy 语言的全新项目构建工具,集合了Ant 和 Maven 各自的优势。
- 优点:集 Ant 脚本的灵活性+Maven 约定大于配置的项目目录优势,支持多种远程仓库和插件,侧重于大项目构建。
- 缺点:学习成本高、资料少、脚本灵活、版本兼容性差等。

Whatever:无论哪种项目构建工具,都有自身的优势和劣势,所以选择一款最适合自己的就是最好的。
1.3、Gradle 安装
1.3.1、Gradle 安装说明
Gradle官网:https://gradle.org/
Gradle官方下载安装教程页面:https://gradle.org/install/Gradle
官方用户手册:https://docs.gradle.org/current/userguide/userguide.html
SpringBoot 官方文档明确指出,目前SpringBoot 的 Gradle 插件需要gradle6.8 版本及以上,所以我们这里选择 7.x 版本。

其中SpringBoot 与Gradle 存在版本兼容问题,Gradle 与Idea 也存在兼容问题,所以考虑到 java 程序员会使用SpringBoot,所以要选择 6.8 版本及高于 6.8 版本的Gradle,那么相应的idea 版本也要升级,不能太老哦。
具体参考文档:https://docs.spring.io/spring-boot/docs/2.5.0/gradle-plugin/reference/htmlsingle/#getting-started
1.3.2、安装JDK
要求Jdk 为 1.8 或者 1.8 版本以上。
1.3.3、下载并解压到指定目录
官网

下载

下载完整版的

解压到指定目录
1.3.4、配置环境变量
先添加GRADLE_HOME

同时将gradle目录下的bin添加到path中

特别注意:这里我们接着再配置一个GRADLE_USER_HOME 环境变量:GRADLE_USER_HOME 相当于配置Gradle 本地仓库位置和 Gradle Wrapper 缓存目录。
Gradle本地仓库可以和Maven本地仓库目录一致
1.3.5、检测是否安装成功
gradle -v 或者 gradle --version: 通过gradle -v或者 gradle --version检测是否安装成功
Gradle 7.5.1安装成功的提示文本

1.4、Gradle 项目目录结构
Gradle 项目默认目录结构和Maven 项目的目录结构一致,都是基于约定大于配置【Convention Over Configuration】。其完整项目目录结构如下所示:

Tips:
- 只有war工程才有webapp目录,对于普通的jar工程并没有webapp目录
- gradlew与gradlew.bat执行的指定wrapper版本中的gradle指令,不是本地安装的gradle指令哦。
相关文章:
Gradle下载安装教程
1、Gradle 入门 1.1、Gradle 简介 Gradle 是一款Google 推出的基于 JVM、通用灵活的项目构建工具,支持 Maven,JCenter 多种第三方仓库;支持传递性依赖管理、废弃了繁杂的xml 文件,转而使用简洁的、支持多种语言(例如:java、groo…...
Python 之 match 表达式
Python 从 3.10 版本开始增加了 match 语句,和其他语言常见的 switch 语句极其相似,但功能更加强大。 本文通过实例,了解下其用法。 基本的 match 语句 def http_code(status): match status: case 400 | 404 | 418: …...
.NET Framework 微软官方下载地址
微软官方下载地址: 下载 .NET Framework | 免费官方下载 (microsoft.com) 版本发布日期终止支持.NET Framework 4.8.12022年8月9日.NET Framework 4.82019年4月18日.NET Framework 4.7.22018年4月30日.NET Framework 4.7.12017年10月17日.NET Framework 4.72017年…...
OpenCV(十四):ROI区域截取
在OpenCV中,你可以使用Rect对象或cv::Range来截取图像的感兴趣区域(Region of Interest,ROI)。 方法一:使用Rect对象截取图像 Rect_(_Tp _x, _Tp _y, _Tp _width,_Tp _height) Tp:数据类型&…...
Java学习笔记之----I/O(输入/输出)一
在变量、数组和对象中存储的数据是暂时存在的,程序结束后它们就会丢失。想要永久地存储程序创建的数据,就需要将其保存在磁盘文件中(就是保存在电脑的C盘或D盘中),而只有数据存储起来才可以在其他程序中使用它们。Java的I/O技术可…...
介绍GitHub
GitHub 是一个基于互联网的源代码托管平台,可以帮助软件开发者存储和管理源代码,方便团队协作和版本控制。GitHub 的主要功能包括: 代码托管:开发者可以在 GitHub 上创建远程代码仓库,存储和管理他们的源代码。 版本控…...
js常用的循环遍历
1.while 循环 While语句包括一个循环条件和一段代码块,只要条件为真,就不断循环执行代码块。 while (条件) 语句; // 或者while (条件) 语句;//举例: var i 0; while (i < 100) { console.log(i 当前为: i); i i 1; }2.…...
存量时代的面经
spring-series,感谢这个项目的作者,还有springboot_learn 这个项目 Spring, 说来惭愧,接触spring 已经接近十年了 通过这个项目,我把spring重写的学习了一遍 1,早上先debug 的一个项目的源码是 springboot_security 在这里插入代码片/****: Creating filter chain:org…...
Python入门教程 | Python 流程控制语句
程序流程控制的三种结构 1.顺序结构 计算机执行程序的步骤是从上到下依次执行 2.选择结构(条件控制) Python 条件语句是通过一条或多条语句的执行结果(True 或者 False)来决定执行的代码块。 可以通过下图来简单了解条件…...
力扣:83. 删除排序链表中的重复元素(Python3)
题目: 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 来源:力扣(LeetCode) 链接:力扣(LeetCode)官网 - 全球极客挚…...
iKeyPrime完美解4G信号,可以登录iCloud,有消息通知,支持最新iOS16.6。
iKeyPrime是一款绕过激活锁界面的解锁工具,可以激活所有iPhone苹果手机,二网/三网恢复信号,并且支持插卡接打电话、收发短信、4G流量上网,支持iCloud登录,有消息通知,支持iPhone5S~X的所有型号,…...
micro python 编译流程和方法,以及一部分问题解决
micro python官网 https://micropython.org/ 点击 点击对应的芯片,我这里是ESP32-S3 点击到git 到esp32目录下 按照指引下载安装ESP-IDF IDF版本查看连接如下: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/versions.html 我这里选择…...
AI篇-chatgpt基本用法(文心一言也适用)
目录 (1)基本规则 (2)例子1-文章摘要 (3)例子2-代码生成 (4)文心一言链接 (1)基本规则 相比于搜索引擎,ChatGPT的优势在于其高效的想法关联和…...
Python小知识 - 使用Python进行数据分析
使用Python进行数据分析 数据分析简介 数据分析,又称为信息分析,是指对数据进行综合处理、归纳提炼、概括总结的过程,是数据处理的第一步。 数据分析的目的是了解数据的内在规律,为数据挖掘,并应用于商业决策、科学研究…...
Pytorch.tensor 相关用法
Torch.tensor.backward()方法的使用举例 理解optimizer.zero_grad(), loss.backward(), optimizer.step()的作用及原理 Autograd: 自动求导 import torchatorch.randn(2,2) # tensor默认requires_gradFalse a((a*3)/(a-1)) print(a.requires_grad) print(a.grad_fn) # leaf …...
信维通信投资者关系活动:揭示5G创新实践,展望未来发展
信维通信于近期举办了一场面向投资者的关系活动,旨在揭示公司在5G时代的创新实践和展望未来发展计划。这场活动吸引了众多投资者和证券分析师的关注,他们期待了解信维通信在5G市场的布局和竞争优势。 在活动当天,信维通信的投资者关系部门负…...
AOP进阶-通知顺序
通知顺序 当多个切面的切入点都匹配到目标方法,目标方法运行时,多个通知都会被执行 执行顺序 不同切面类中,默认按照切面类的类名称字母排序 目标方法前的通知方法:字母排名靠前的先执行目标方法后的通知方法:字母排…...
Sui流动性质押黑客松|本周Workshop预告
Sui流动性质押黑客松正在如火如荼的报名中,Sui基金会现诚邀全球开发者前来参与,助力资产再流通。了解黑客松详情:Sui流动性质押黑客松开启报名,赢取千万美金质押和奖励! 黑客松官网:Sui Liquid Staking Ha…...
数学建模:线性与非线性优化算法
🔆 文章首发于我的个人博客:欢迎大佬们来逛逛 数学建模:线性与非线性优化算法 优化算法是指在满足一定条件下,在众多方案中或者参数中最优方案,或者参数值,以使得某个或者多个功能指标达到最优,或使得系统的某些性能指标达到最大值或者最小…...
数学建模--粒子群算法(PSO)的Python实现
目录 1.开篇提示 2.算法流程简介 3.算法核心代码 4.算法效果展示 1.开篇提示 """ 开篇提示: 这篇文章是一篇学习文章,思路和参考来自:https://blog.csdn.net/weixin_42051846/article/details/128673427?utm_mediumdistribute.pc_relevant.none-task-blog-…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
C语言中提供的第三方库之哈希表实现
一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...
