Gradle笔记 一 Gradle的安装与入门

文章目录

  • Gradle 入门
    • Gradle 简介
      • 学习Gradle 的原因:
    • 常见的项目构建工具
    • Gradle 安装
      • Gradle 安装说明
      • 安装JDK
    • 下载并解压到指定目录
      • 配置环境变量
      • 检测是否安装成功`
    • Gradle 项目目录结构
    • Gradle 创建第一个项目
      • Gradle 中的常用指令
      • 修改maven 下载源
      • Wrapper 包装器
        • 使用教程
          • 添加 Gradle 包装器
        • 如何使用 Gradle 包装器
        • 更新 Gradle 包装器

Gradle 入门

Gradle 简介

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

学习Gradle 的原因:

  1. 目前已经有相当一部分公司在逐渐使用Gradle作为项目构建工具了。
  2. 作为Java开发程序员,如果想下载Spring、SpringBoot等Spring家族的源码,基本上基于Gradle构建的。
  3. 支持基于groovy语言编写脚本,侧重于构建过程的灵活性,适合于构建复杂度较高的项目。
  4. gradle相比服务端java,在Android上更为流行,主要也是Android上更侧重构建的复杂性和多样性
  5. 构建效率高,官方数据显示,Gradle比maven构建速度快2~10倍

常见的项目构建工具

  • 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 约定大于配置的项目目录优势,支持多种远程仓库和插件,侧重于大项目构建。缺点:学习成本高、资料少、脚本灵活、版本兼容性差等。

Gradle 安装

Gradle 安装说明

SpringBoot 官方文档明确指出,目前SpringBoot 的 Gradle 插件需要gradle6.8 版本及以上.
其中SpringBoot 与Gradle 存在版本兼容问题,Gradle 与Idea 也存在兼容问题,所以考虑到 java 程序员会使用SpringBoot,所以要选择 6.8 版本及高于 6.8 版本的Gradle,那么相应的idea 版本也要升级,不能太老哦。

安装JDK

要求Jdk 为 1.8 或者 1.8 版本以上。

下载并解压到指定目录

下载

● 解压到指定目录: D:\software\gradle-8.4

配置环境变量

在win10及更高版本中,一般按下win+s搜索环境变量即可快速找到设置
请添加图片描述

请添加图片描述

特别注意:这里我们接着再配置一个GRADLE_USER_HOME 环境变量:
GRADLE_USER_HOME 相当于配置Gradle 本地仓库位置和 Gradle Wrapper 缓存目录。
请添加图片描述

提示
Gradle本地仓库可以和Maven本地仓库目录一致

检测是否安装成功`

gradle -v 或者 gradle --version: 通过gradle -v或者 gradle --version检测是否安装成功
Gradle 安装成功的提示文本

C:\Users\29071>gradle -v

------------------------------------------------------------
Gradle 8.4
------------------------------------------------------------

Build time:   2023-10-04 20:52:13 UTC
Revision:     e9251e572c9bd1d01e503a0dfdf43aedaeecdc3f

Kotlin:       1.9.10
Groovy:       3.0.17
Ant:          Apache Ant(TM) version 1.10.13 compiled on January 4 2023
JVM:          21 (Oracle Corporation 21+35-LTS-2513)
OS:           Windows 11 10.0 amd64


Gradle 项目目录结构

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

请添加图片描述

Tips:

  1. 只有war工程才有webapp目录,对于普通的jar工程并没有webapp目录
  2. gradlew与gradlew.bat执行的指定wrapper版本中的gradle指令,不是本地安装的gradle指令哦。

Gradle 创建第一个项目

借助于 spring 脚手架创建gradle 第一个项目:https://start.spring.io/

请添加图片描述

查看生成的gradle 项目目录结构如下所示:
请添加图片描述

与上图对比会发现:总体的目录结构与上图说明的是一致的。

Gradle 中的常用指令

Gradle 常用命令说明:
请添加图片描述

需要注意的是:gradle 的指令要在含有build.gradle 的目录执行。

修改maven 下载源

Gradle 自带的Maven 源地址是国外的,该Maven 源在国内的访问速度是很慢的,除非使用了特别的手段。一般情况下,我们建议使用国内的第三方开放的Maven 源或企业内部自建Maven 源。
认识init.d 文件夹
我们可以在gradle 的init.d 目录下创建以.gradle 结尾的文件,.gradle 文件可以实现在build 开始之前执行,所以你可以在这个文件配置一些你想预先加载的操作。
在init.d 文件夹创建init.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/' }
        }
    }
}

拓展 1:启用init.gradle 文件的方法有:
1.在命令行指定文件,例如:gradle --init-script yourdir/init.gradle -q taskName。你可以多次输入此命令来指定多个init文件

  1. 把以.gradle结尾的文件放到 USER_HOME/.gradle/init.d/ 目录下
  2. 把以.gradle结尾的文件放到 GRADLE_HOME/init.d/ 目录下

拓展 2:仓库地址说明

mavenLocal(): 指定使用maven本地仓库,而本地仓库在配置maven时settings文件指定的仓库位置。如E:/repository,gradle 查找jar包顺序如下:USER_HOME/.m2/settings.xml >> M2_HOME/conf/settings.xml >> USER_HOME/.m2/repository

maven { url 地址},指定maven仓库,一般用私有仓库地址或其它的第三方库【比如阿里镜像仓库地址】。

mavenCentral():这是Maven的中央仓库,无需配置,直接声明就可以使用。

jcenter():JCenter中央仓库,实际也是是用的maven搭建的,但相比Maven仓库更友好,通过CDN分发,并且支持https访问,在新版本中已经废弃了,替换为了mavenCentral()。

**拓展 3:**阿里云仓库地址请参考:https://developer.aliyun.com/mvn/guide

Wrapper 包装器

Gradle Wrapper 实际上就是对 Gradle 的一层包装,用于解决实际开发中可能会遇到的不同的项目需要不同版本的 Gradle
问题。例如:把自己的代码共享给其他人使用,可能出现如下情况:

  1. 对方电脑没有安装 gradle
  2. 对方电脑安装过 gradle,但是版本太旧了

这时候,我们就可以考虑使用 Gradle Wrapper 了。这也是官方建议使用 Gradle Wrapper 的原因。实际上有了 Gradle Wrapper 之后,我们本地是可以不配置 Gradle 的,下载Gradle 项目后,使用 gradle 项目自带的wrapper 操作也是可以的。

请添加图片描述

使用教程

我们将使用第一个 Gradle 包装器执行以下操作:

  • 设置一个新的 Gradle 项目并为其添加一个包装器。
  • 使用现有包装器运行项目。
  • 将包装器升级到最新版本的 Gradle。
添加 Gradle 包装器

Gradle 带有一个称为包装器的内置任务。 执行此任务时,它会在项目中生成必要的包装文件。 要将包装器添加到项目中,请在项目的根目录下运行包装器命令,如下所示:

gradle wrapper  

gradle wrapper 执行结果

D:\ProjectJava\demo>gradle wrapper
Starting a Gradle Daemon, 1 incompatible and 1 stopped Daemons could not be reused, use --status for details

BUILD SUCCESSFUL in 21s
1 actionable task: 1 executed
D:\ProjectJava\demo>

上面的命令将为我们的项目提供包装器,并将包装器属性文件生成到目录 gradle/wrapper/gradle-wrapper.properties。

gradle wrapper 目录

gradle-wrapper 属性文件内容如下:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

此文件包含有关 Gradle 发布版本的以下信息:

  • 托管 Gradle 发行版的服务器。
  • Gradle 发行版的类型,默认情况下,它是 bin 发行版,仅包含运行时,但不包含示例代码和文档。
  • Gradle 版本用于执行构建。 默认情况下,包装器任务选择机器的已安装版本。

注意:如果我们想将包装文件共享给其他开发人员和执行环境,那么我们必须将它们推送到版本控制中。

上述所有方面都可以在包装文件生成期间借助命令行进行配置。

以下命令用于指定用于下载和执行包装器的 Gradle 版本:

--gradle-version  

下面的命令用于指定用于包装器的 Gradle 分发类型。 可用选项为 bin 和 all,默认值为 ‘bin’:

--distribution-type  

以下命令用于将完整 URL 指向 Gradle 分发 zip 文件:

--gradle-distribution-url  

考虑以下示例来解释命令行选项的使用。 我们希望使用 7.5 版创建包装器,并使用 -all 分发版来启用我们的 IDE 来启用代码完成并能够导航到 Gradle 源代码。 以下命令可以满足这些要求:

$ gradle wrapper --gradle-version 8.4 --distribution-type all  

上面的命令将创建一个 8.4 版本的包装器。

如何使用 Gradle 包装器

建议使用包装器执行项目的构建,以确保构建的标准、可控和可靠执行。 Wrapper 执行构建,几乎就像使用 Gradle 安装执行构建一样。 根据我们的操作系统,我们可以运行 gradlew 或 gradlew.bat 命令而不是 gradle 命令。 以下命令演示了如何在 Windows 机器上为基于 Java 的项目使用包装器:

gradlew build  

如果机器上没有 Gradle 发行版,包装器将下载并提供给我们,并将其存储在本地文件系统中。文件存储在项目根目录下的.gradle文件下
请添加图片描述

后续构建调用将重用现有的本地分发,因为 Gradle 属性中的分发 URL 不会更改。

更新 Gradle 包装器

软件需要更新以使其与最新版本保持连接,从而受益于新功能和改进。 我们还可以通过更改包装器属性文件中的分发 URL 属性来手动升级 Gradle 版本。

但是,建议通过 wrapper 任务升级 wrapper 版本,通过指定的 Gradle 版本。 包装器任务确保对包装器 shell 脚本所做的任何优化都应用于项目,尽管我们必须将这些对包装器文件的更改提交给版本控制。

gradle 包装器任务用于生成指定版本的包装器。 默认情况下,它会考虑安装的版本。

要将 Gradle 包装器升级到指定版本,请运行以下命令:

$ gradlew wrapper --gradle-version8.4

上述命令会将项目升级到 Gradle 版本 8,4。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode----25. K 个一组翻转链表

题目 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。 示…

Windows环境下使用VLC获取到大疆无人机的RTMP直播推流

1.环境准备 1.安装nginx 1.7.11.3 Gryphon 下载地址:http://nginx-win.ecsds.eu/download/ 下载nginx 1.7.11.3 Gryphon.zip,解压后修改文件夹名称为nginx-1.7.11.3-Gryphon; 2.安装nginx-rtmp-module 下载地址:GitHub - arut…

Centralized Feature Pyramid for Object Detection解读

Centralized Feature Pyramid for Object Detection 问题 主流的特征金字塔集中于层间特征交互,而忽略了层内特征规则。尽管一些方法试图在注意力机制或视觉变换器的帮助下学习紧凑的层内特征表示,但它们忽略了对密集预测任务非常重要的被忽略的角点区…

lua-resty-request库写入爬虫ip实现数据抓取

根据提供的引用内容,正确的库名称应该是lua-resty-http,而不是lua-resty-request。使用lua-resty-http库可以方便地进行爬虫,需要先安装OpenResty和lua-resty-http库,并将其引入到Lua脚本中。然后,可以使用lua-resty-h…

springmvc 讲解(2)

系列文章目录 springmvc讲解(1 )点击此处即可 文章目录 系列文章目录一、Springmvc发送数据1、快速跳转页面1.1 开发模式讲解1.2 jsp简述1.3 页面跳转控制1.4 转发和重定向 2、返回json数据2.1 ResponseBody 注解2.2 RestController注解 3、访问静态资源…

通过在Z平面放置零极点的来设计数字滤波器

文章来源地址:https://www.yii666.com/blog/393376.html 通过在Z平面放置零极点的来设计数字滤波器 要求:设计一款高通滤波器,用在音频信号处理过程中,滤掉100Hz以下的信号。 实现方法:通过在Z平面放置零极点的来设…

独创改进 | RT-DETR 引入双向级联特征融合结构 RepBi-PAN | 附手绘结构图原图

本专栏内容均为博主独家全网首发,未经授权,任何形式的复制、转载、洗稿或传播行为均属违法侵权行为,一经发现将采取法律手段维护合法权益。我们对所有未经授权传播行为保留追究责任的权利。请尊重原创,支持创作者的努力,共同维护网络知识产权。 文章目录 YOLOv6贡献RepBi-…

NLP之Bert介绍和简单示例

文章目录 1. Bert 介绍2. 代码示例2.1 代码流程 1. Bert 介绍 2. 代码示例 from transformers import AutoTokenizertokenizer AutoTokenizer.from_pretrained("bert-base-chinese") input_ids tokenizer.encode(欢迎来到Bert世界, return_tensorstf) print(input…

Linux下input子系统

文章目录 input子系统简单介绍相关的函数input_dev注册过程上报输入事件按键的input子系统实验 input子系统简单介绍 input子系统是管理输入的子系统,和pinctrl和gpio子系统一样,都是Linux内核针对某一类设备而创建的框架。比如按键输入、键盘、鼠标、触…

【强化学习】16 ——PPO(Proximal Policy Optimization)

文章目录 前言TRPO的不足PPO特点 PPO-惩罚PPO-截断优势函数估计算法伪代码PPO 代码实践参考 前言 TRPO 算法在很多场景上的应用都很成功,但是我们也发现它的计算过程非常复杂,每一步更新的运算量非常大。于是,TRPO 算法的改进版——PPO 算法…

PHP 人才招聘管理系统mysql数据库web结构layUI布局apache计算机软件工程网页wamp

一、源码特点 PHP 人才招聘管理系统是一套完善的web设计系统 layUI技术布局 ,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 php人才招聘管理系统 代码 https://download.csdn.net/download/qq_4…

软件开发全文档归档,开发、管理、实施、运维、服务巡检、信息安全、安全运维

在当今高度信息化的时代,软件开发已成为推动社会进步和发展的重要力量。软件开发过程中,文件支撑作为关键的一环,对于保障项目的顺利进行和产品的质量具有不可替代的作用。本文将探讨软件开发所需的主要文件及其作用。 一、引言 软件开发是…

VR博物馆:让博物馆传播转化为品牌影响力

随着VR技术的不断进步,VR全景技术已经成为了文化展示和传播的一项重要工具,相较于传统视频、图文等展现方式,VR全景体验更加直观、便捷,其中蕴涵的信息量也更加丰富,这也为公众了解博物馆和历史文化带来了更为深刻的体…

802.11AX基础---走进HE WLAN

1、WiFi 6 是什么? WiFi 6是IEEE802.11ax的简称,也就是第六代WiFi的标准;它在继承前几代WiFi技术的前提下,不仅对速率进行优化,更着重于对 效率 的提升。 2、WiFi 6 为什么快? WiFi 6 理论速率计算公式&a…

【Midjourney入门教程3】写好prompt常用的参数

文章目录 1、图片描述词(图片链接)文字描述词后缀参数2、权重划分3、后缀参数版本选择:--v版本风格:--style长宽比:--ar多样性: --c二次元化:--niji排除内容:--no--stylize--seed--tile、--q 4、…

使用Python 脚自动化操作服务器配置

“ 有几十台特殊的服务器,没有合适的批量工具只能手动,要一个一个进行点击设置很耗费时间呀\~”,使用 Python 的简单脚本,即可模拟鼠标键盘进行批量作业 01 — 自动化示例 以某服务器中的添加用户权限为例,演示过程皆未触碰鼠标…

2022年09月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 十六进制数100,对应的十进制数为 ?( ) A: 128 B: 256 C: 28 D: 56 答…

如何设置OBS虚拟摄像头给钉钉视频会议使用

环境: OBS Studio 29.1.3 Win10 专业版 钉钉7.1.0 问题描述: 如何设置OBS虚拟摄像头给钉钉视频会议使用 解决方案: 1.打开OBS 底下来源这添加视频采集设备 选择OBS虚拟摄像头 2.源那再建一个图像,随便选一张图片 3.点击虚…

【DriveGPT学习笔记】自动驾驶汽车Autonomous Vehicle Planning

原文地址:DriveGPT - Lei Maos Log Book 自动驾驶汽车的核心软件组件是感知、规划和控制。规划是指在给定场景或一系列场景的情况下为自动驾驶汽车制定行动计划的过程,以实现安全和理想的自动驾驶。 用于规划的场景是从感知软件组件获得的。计划的行动将…

Windows Server 2016使用MBR2GPT.EXE教程!

什么是MBR2GPT.exe? MBR2GPT.exe是微软提供的专业工具,可在命令提示符下运行。使用该工具可以将引导磁盘从MBR转换为GPT分区样式,而无需修改或删除所选磁盘上的任何内容。 在Windows Server 2019和Windows 10(1703…