Gradle入门初探

news2024/10/7 17:25:11

一、Gradle简介:

我们都创建过基于Maven的项目,maven可以很好的管理项目的依赖,编译和打包项目,Gradle是一个和Maven类似的自动化构建工具,Maven是基于xml文件格式,而Gradle是基于Groovy的语言,这使Groovy的构建脚本更加的灵活并且易于编写。在性能上,Gradle也引入了增量构建以及一些缓存机制,也要比maven构建速度更快,总之,Gradle的优点要比maven多,作为继maven之后的新一代的构建工具,如果我们要创建新的项目,不妨使用Gradle尝试下。

二、Gradle本地安装以及环境变量配置

1.Gradle下载

本地环境:Win11、JDK8
官网下载地址:https://gradle.org/releases/
为了和本地IDEA兼容,我这里下载的版本是v7.5.1,只需要下载二进制安装包即可
在这里插入图片描述

2.配置环境变量

安装包解压到本地目录,如下:
在这里插入图片描述
配置GRADLE_HOME环境变量,值为gradle 解压的路径

GRADLE_HOME
D:\SoftWare\dev\gradle\gradle-7.5.1

在这里插入图片描述
配置PATH环境变量

%GRADLE_HOME%\bin

在这里插入图片描述
配置GRADLE_USER_HOME环境变量,设置Gradle用户目录的路径,用于设置依赖项的缓存位置

变量名:GRADLE_USER_HOME
变量值:自定义Gradle仓库目录或者Maven的仓库目录

在这里插入图片描述

这里我在配置的时候,有个疑问,Gradle与Maven能使用同一个仓库地址吗?上网查了下,也就是说,gradle是无法和maven公用一个仓库的,只不过gradle可以使用maven作为下载源

检测Gradle是否安装成功
gradle -v或者 gradle --version
在这里插入图片描述
3.配置Gradle下载源,在Gradle安装目录的init.d目录下,创建一个.gradle文件,配置如下:
在这里插入图片描述

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配置的是gradle获取jar包的顺序,也就是先是maven本地仓库路径,第二个是【阿里镜像仓库地址】,第三个也是一个国外的远程仓库地址,第四个则是maven的中央仓库地址

mavenLocal()为maven本地仓库地址,如想要生效的话,还需要本地配置M2_HOME的环境变量
mavenCentral()中央仓库地址,则无需配置,直接声明就可使用

上述配置完成之后,再使用gradle导入jar包,就会优先从本地的maven仓库的目录下寻找jar包了

三、Gradle创建项目

1.新建gradle项目
在这里插入图片描述
2.build.gradle文件修改下镜像源

repositories {
    mavenLocal()
    maven {
        url 'https://maven.aliyun.com/repository/public'
    }
    mavenCentral()
}

gradle项目结构说明

│  build.gradle
│  gradlew
│  gradlew.bat
│  settings.gradle
├─gradle
│  └─wrapper
│          gradle-wrapper.jar
│          gradle-wrapper.properties
│
└─src
...

1.build.gradle:项目整体的一些配置,类似maven中的pom.xml,定义构建逻辑、依赖关系、插件应用等,其中主要的属性有:

  • group、version、name,属性定义了项目的组织或组ID,用于唯一标识项目的组织或团队。这通常是一个反向的域名,version属性定义了项目的版本号,name属性表示项目的名称,group 和 version 属性通常在项目的根 build.gradle 文件中设置,而 name 属性可能在项目的 settings.gradle 文件中设置。
  • dependencies 定义配置项目的依赖
  • repositories 定义 Gradle 从哪里获取依赖项

2.gradlew/gradlew.bat:gradle的包装器脚本,可以执行gradle命令,gradlew和gradlew.bat可以执行Gradle构建脚本(build.gradle)中定义的各种任务,如构建项目、清理项目、运行测试、打包项目以及管理依赖等。这些任务通过运行相应的命令来完成,例如"./gradlew build"命令将编译源代码、运行测试等。gradlew是在Linux或Mac系统中使用的,而gradlew.bat则是Windows系统使用的。
3.settings.gradle:这个文件用于定义项目的模块和子项目。它指定了哪些模块应该包含在构建过程中,以及它们之间的依赖关系。
4.gradle/wrapper/gradle-wrapper.jar wrapper运行需要的依赖包
5.gradle/wrapper/gradle-wrapper.properties 是一些wrapper的配置,其中distributionUrl用来指定gradle的下载地址和版本
6.src目录:项目的源代码

Gradle-Wrapper的作用是什么?
Gradle-Wrapper主要用来简化Gradle的安装和部署,由于每个项目Gradle的版本可能不太一致,我们项目可能不能及时跟着调整Gradle版本,所以GradleWrapper就是用来下载特定版本的gradle然后执行的,就不需要我们开发者在本地再安装gradle了,也就是可以再不同的项目中使用不同的gradle版本。
所以,当我们想使用wrapper里面的命令的话,就使用./gradlew命令,如果想要使用本地的gradle,可以使用gradle命令,gradlew基本上都涵盖了gradle的命令。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1574739.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

dm8数据迁移工具DTS

dm8数据迁移工具DTS DTS工具介绍 DM数据迁移工具提供了主流大型数据库迁移到DM、DM到DM、文件迁移到DM以及DM迁移到文件的功能。DM数据迁移工具采用向导方式引导用户通过简单的步骤完成需要的操作。 DM数据迁移工具支持: ◆ 主流大型数据库Oracle、SQLServer、MyS…

Advanced RAG 01:讨论未经优化的 RAG 系统存在的问题与挑战

编者按: 自 2023 年以来,RAG 已成为基于 LLM 的人工智能系统中应用最为广泛的架构之一。由于诸多产品的关键功能严重依赖RAG,优化其性能、提高检索效率和准确性迫在眉睫,成为当前 RAG 相关研究的核心问题。 我们今天为大家带来的这…

【无标题】【Android】Android中Intent的用法总结

2.显示地图: Java代码 Uri uri Uri.parse(“geo:38.899533,-77.036476”); Intent it new Intent(Intent.Action_VIEW,uri); startActivity(it); 3.从google搜索内容 Java代码 Intent intent new Intent(); intent.setAction(Intent.ACTION_WEB_SEARCH); intent.pu…

SAP操作教程第16期:SAP B1关于审批模块的设置

工作效率是企业的生存之本,也是员工能够在企业中发展之本。自动化和规范化的审批流程可以减少手动操作以及沟通环节、节约时间和资源从而提高工作效率。 所以,今天我们就一起来了解一下SAP B1中关于审批模块的设置。 01关于审批模块的设置 第一步&#x…

数据结构基础:双链表结构、实现

继续和颦颦学C语言呀.......> 双链表的结构 这里的head 为头节点,是‘哨兵位’,实际不存储任何有效的数据 它的存在是为了遍历环链表避免死循环 双链表的实现 typedef int LTDataType; typedef struct ListNode { struct ListNode* next; //指针保存…

为什么使用MQ????

1、异步处理 场景说明:用户注册后,需要发注册邮件和注册短信,传统的做法有两种 1.串行的方式 2.并行的方式。 串行方式: 将注册信息写入数据库后,发送注册邮件,再发送注册短信,以上三个任务全部完成后才返回给客户端。 这有一个问题是,邮件,短信并不是…

2024/4/1—力扣—二叉树的最近公共祖先

代码实现: 思路: 递归判断左子树和右子树,查找p或者q是否在当前节点的子树上 1,在同一子树上,同一左子树,返回第一个找到的相同值,同一右子树上,返回第一个找到的相同值 2&#xff0…

【每日刷题】Day4

【每日刷题】Day4 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 目录 1. 83. 删除排序链表中的重复元素 - 力扣(LeetCode) 2. 88. 合并两个有序数组 - 力扣(LeetCode&…

Windows SDK(六)组合框与列表框控件

组合框和列表框同样也是控件,所以我们在应用组合框和列表框时同样也需要父窗口,现在我们以 创建项目时程序自行创建的窗口作为父窗口展开如下的控件创建与应用 在进行组合框与列表框的讲解前,我们首先在程序中定义几个宏作为我们在编写程序…

C语言:顺序表专题

目录 一、数据结构之顺序表/链表1.数据结构相关概念1.1什么是数据结构1.2为什么需要数据结构 二、顺序表1.顺序表的概念及结构2.顺序表分类3.动态顺序表的实现 一、数据结构之顺序表/链表 1.数据结构相关概念 1.1什么是数据结构 数据结构是由“数据”和“结构”两词组合而来…

【优选算法专栏】专题十六:BFS解决最短路问题(一)

本专栏内容为:算法学习专栏,分为优选算法专栏,贪心算法专栏,动态规划专栏以及递归,搜索与回溯算法专栏四部分。 通过本专栏的深入学习,你可以了解并掌握算法。 💓博主csdn个人主页:小…

云his系统源码 java源码saas模式 二甲医院his系统全套源码 数据库MySQL + MyCat

基层医院云HIS系统源码 一款满足基层医院各类业务需要的云HIS系统。该系统能帮助基层医院完成日常各类业务,提供病患挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查询、医生站和护士站等一系列常规功能,还能与公卫、PACS等各类外部系统融合&…

0基础学习python

0基础如何进入IT行业? 建议先掌握以下: 编程环境的安装和使用输出输入语句、变量、表达式的理解和使用选择结构、循环结构的理解和使用列表的使用文件的操作函数的调用库的安装和使用 编程,其实就是利用特定的语言控制计算机、或者就是与计算…

如何把音乐播放速度慢下来?享受慢音乐的两个方法

一,前言 在现代社会,我们生活在一个快节奏的环境中,时间仿佛被压缩成了碎片,每个人都在匆匆忙忙地追求着速度和效率。然而,有时放慢脚步,让心灵回归宁静,成为了一种难得的奢侈。 音乐&#xf…

民航电子数据库:在有分组统计的语句中,输出表达式含有非分组统计项

目录 一、场景二、报错信息三、排查四、原因五、解决 一、场景 1、对接民航电子数据库 2、执行SQL语句报错 二、报错信息 三、排查 查看数据库def_group_by_mode配置 show def_group_by_mode四、原因 def_group_by_mode设置为0导致,相当于mysql的sql_modeonly_…

NatCross实现NASCAB云可云内网穿透指南

一、简介 1、NAS_CAB介绍 跨平台NAS软件,远程管理照片,影音和文件,无需专用设备,个人版永久免费。官网地址:https://www.nascab.cn/。 2、NatCross介绍 NatCross是内网穿透工具,也是免费的端口映射和DDNS动态域名解析软件。软件从2021年上线以来&…

51单片机实验03-定时器T0来实现流水灯从左到右再从右到左

目录 一、实验目的 二、实验说明 1、51单片机有两个16位内部计数器/定时器(C/T, Counter/Timer)。 2、模式寄存器TMOD 1) M1M0工作模式控制位; 2) C/T定时器或计数器选择位: 3)GATE定时器/计数器运行…

淘宝扭蛋机小程序源码搭建:打造专属电商娱乐新平台

在数字化浪潮的推动下,电商平台不断创新,以满足消费者日益多样化的需求。淘宝扭蛋机小程序作为一种创新的电商娱乐形式,受到了广大用户的热烈追捧。为了满足市场需求,许多企业和开发者开始关注淘宝扭蛋机小程序的源码搭建&#xf…

Centos7使用docker安装Jenkins(含pipeline脚本语句)

一、下载Jenkins docker pull jenkins/jenkins:lts 二、启动Jenkins docker run \-u root \--rm \-d \-p 8081:8080 \-p 50000:50000 \-v /root/docker/jenkins/var/jenkins_home:/var/jenkins_home \-v /var/run/docker.sock:/var/run/docker.sock \-v /usr/bin/docker:/usr…

渲染一帧特效需要多少钱?云渲染特效每帧成本

特效渲染的成本受到诸多因素的影响,每帧的渲染费用是评估整个项目预算的重要依据。随着云渲染技术的发展,其高效率和可伸缩性赢得了业界的广泛关注。对于影视制作公司和独立创作者而言,掌握云渲染特效的单帧成本是管理和优化预算分配的关键。…