Gradle系列——概述与简介(源于文档7.5版本,SpringBoot使用)day1-1

news/2024/5/20 3:05:57 标签: spring boot, java, gradle

Gradle系列——概述与简介(源于文档7.5版本,SpringBoot使用)day1-1

  • 前言
  • 简介
    • Gradle的特点
    • Gradle核心5点
      • 1. Gradle是一个通用的构建工具
      • 2.核心模型基于任务
        • 任务本身包括
      • 3.Gradle 几个固定的构建阶段
      • 4. Gradle 可以通过多种方式进行扩展
        • 主流扩展机制
      • 5.构建脚本对 API 进行操作
  • 下载
  • Gradle目录
  • 配置Gradle
    • 1.选择设置-->系统-->高级系统设置
    • 2.选择环境变量
    • 3.新建Gradle系统目录
    • 4.在path中配置到bin目录
    • 5.查看Gradle
    • 6. 配置Gradle的本地仓库
  • QuickStart
    • 基本Java项目构建
      • 1.创建一个目录
      • 2.初始化
    • 使用IDEA进行创建
      • 1.打开IDEA新建项目
      • 2.配置Gradle到IDEA中
      • 3.用Spring Initializr构建
      • 4.启动测试

前言

以前学maven的时候没看文档,也没看视频,基本上就是玩着玩着玩会的,所以这波我好好写一下Gradle的文档,和大家一起学一下Gradle

简介

Gradle 是一个开源 构建自动化 工具,其设计足够灵活,可以构建几乎任何类型的软件

Gradle的特点

  1. 高性能

Gradle 通过只运行那些因为输入或输出发生变化而需要运行的任务来避免不必要的工作。 您还可以使用构建缓存来重用以前运行的任务输出,甚至可以重用来自不同机器(使用共享构建缓存)的任务输出。

Gradle 实现了许多其他优化,开发团队不断努力提高 Gradle 的性能。

  1. JVM基础

Gradle 在 JVM 上运行,您必须安装 Java 开发工具包 (JDK) 才能使用它。 这对于熟悉 Java 平台的用户来说是一个奖励,因为您可以在构建逻辑中使用标准 Java API,例如自定义任务类型和插件。 它还使得在不同平台上运行 Gradle 变得容易。

请注意,Gradle 不仅限于构建 JVM 项目,它甚至还包含对构建本机项目的支持。

  1. 约定

Gradle 借鉴了 Maven 的书,通过实现约定使常见类型的项目(例如 Java 项目)易于构建。 应用适当的插件,您就可以轻松地为许多项目提供精简的构建脚本。 但这些约定不会限制您:Gradle 允许您覆盖它们、添加您自己的任务以及对基于约定的构建进行许多其他自定义。

  1. 可扩展性

您可以轻松扩展 Gradle 以提供您自己的任务类型,甚至构建模型。 有关此示例,请参阅 Android 构建支持:它添加了许多新的构建概念,例如风味和构建类型。

  1. IDE 支持

几个主要的 IDE 允许您导入 Gradle 构建并与之交互:Android Studio、IntelliJ IDEA、Eclipse 和 NetBeans。 Gradle 还支持生成将项目加载到 Visual Studio 所需的解决方案文件。

  1. 洞察力

构建扫描 提供有关构建运行的大量信息,您可以使用这些信息来识别构建问题。 他们特别擅长帮助您识别构建性能的问题。 您还可以与其他人共享构建扫描,如果您需要寻求建议以解决构建问题,这将特别有用。

Gradle核心5点

1. Gradle是一个通用的构建工具

Gradle 允许您构建任何软件,因为它对您尝试构建的内容或应该如何完成几乎没有假设。 最显着的限制是依赖管理目前仅支持与 Maven 和 Ivy 兼容的存储库和文件系统
这并不意味着您必须做很多工作来创建构建。 Gradle 通过添加一层约定和通过 插件 。 您甚至可以创建和发布自定义插件来封装您自己的约定和构建功能

2.核心模型基于任务

Gradle 将其构建建模为任务(工作单元)的有向无环图 (DAG),这意味着构建本质上是配置一组任务并将它们连接在一起
所以任务是基于依赖关系以创建DAG的
创建任务图后,Gradle 会确定哪些任务需要以何种顺序运行,然后继续执行它们
在这里插入图片描述
几乎任何构建过程都可以通过这种方式建模为任务图,这也是 Gradle 如此灵活的原因之一。 并且该任务图可以由插件和您自己的构建脚本定义,任务通过 任务依赖机制

任务本身包括

  1. 动作:做某事的工作,比如复制文件或编译源代码
  2. 输入:动作使用或操作的值、文件和目录
  3. 输出:操作修改或生成的文件和目录

事实上,以上所有都是可选的,具体取决于任务需要做什么。 某些任务(例如 标准生命周期任务 )甚至没有任何操作。 他们只是为了方便而将多个任务聚合在一起

您选择要运行的任务。 通过指定执行您需要的任务来节省时间,但仅此而已。 如果您只想运行单元测试,请选择执行该任务的任务——通常 test. 如果你想打包一个应用程序,大多数构建都有一个 assemble为此的任务

Gradle 的 增量构建 支持强大且可靠,因此通过避免 clean除非您确实想要执行清洁任务。

3.Gradle 几个固定的构建阶段

  1. 初始化

为构建设置环境并确定哪些项目将参与其中。

  1. 配置

为构建构建和配置任务图,然后根据用户想要运行的任务确定需要运行哪些任务以及以何种顺序运行。

  1. 执行

运行在配置阶段结束时选择的任务。

这些阶段构成了Gradle的构建生命周期(Build Lifecycle)

精心设计的构建脚本主要由 声明性配置而不是命令式逻辑 。 该配置在配置阶段进行评估是可以理解的。 即便如此,许多这样的构建也有任务操作——例如通过 doLast {}和 doFirst {}块——在执行阶段被评估。 这很重要,因为在配置阶段评估的代码不会看到在执行阶段发生的变化。

配置阶段的另一个重要方面是 每次构建运行时都会 。 这就是为什么最好 在配置阶段避免昂贵的工作 。 构建扫描 可以帮助您识别此类热点等

4. Gradle 可以通过多种方式进行扩展

如果您可以仅使用与 Gradle 捆绑的构建逻辑来构建项目,那就太好了,但这几乎是不可能的。 大多数构建都有一些特殊要求,这意味着您需要添加自定义构建逻辑

主流扩展机制

  1. 自定义任务类型 。

当您希望构建完成一些现有任务无法完成的工作时,您可以简单地编写自己的任务类型。 通常最好将自定义任务类型的源文件放在 buildSrc 目录或打包插件中。 然后,您可以像使用任何 Gradle 提供的任务类型一样使用自定义任务类型。

  1. 自定义任务操作

附加在任务之前或之后执行的自定义构建逻辑 Task.doFirst() 和 Task.doLast() 方法

  1. 额外属性

这些允许您将自己的属性添加到项目或任务中,然后您可以从自己的自定义操作或任何其他构建逻辑中使用这些属性。 额外的属性甚至可以应用于不是由您明确创建的任务,例如由 Gradle 的核心插件创建的任务。

  1. 自定义约定。

约定是简化构建的有效方式,使用户可以更轻松地理解和使用它们。 这可以在使用标准项目结构和命名约定的构建中看到,例如 Java 构建 。 您可以编写自己的插件来提供约定——它们只需要为构建的相关方面配置默认值。

  1. 定制模型 。

Gradle 允许您将新概念引入构建中,而不仅仅是任务、文件和依赖项配置。 您可以在大多数语言插件中看到这一点,它们将 源集 到构建中。 构建过程的适当建模可以极大地提高构建的易用性和效率。

5.构建脚本对 API 进行操作

将 Gradle 的构建脚本视为可执行代码很容易,因为它们就是这样。 但这是一个实现细节:精心设计的构建脚本描述 了 构建软件所需的步骤,而不是 。 这些步骤应该如何完成工作 这是自定义任务类型和插件的工作

有一个普遍的误解认为 Gradle 的强大和灵活性来自于它的构建脚本是代码这一事实。 这与事实相去甚远。 提供功能的是底层模型和 API。 正如我们在最佳实践中建议的那样,您应该 避免在构建脚本中放置太多(如果有的话)命令式逻辑

然而,在一个领域将构建脚本视为可执行代码很有用:了解构建脚本的语法如何映射到 Gradle 的 API。 API 文档——由 Groovy DSL Reference 和 Javadocs ——列出了方法和属性,并提到了闭包和操作。 这些在构建脚本的上下文中意味着什么? 查看 Groovy Build Script Primer 以了解该问题的答案,以便您可以有效地使用 API 文档

由于 Gradle 在 JVM 上运行,构建脚本也可以使用标准 Java API

下载

使用 Gradle Wrapper 是升级 Gradle 的推荐方式
完整下载

Gradle目录

在这里插入图片描述
在这里插入图片描述

配置Gradle

我们需要将gradle配置为环境变量

1.选择设置–>系统–>高级系统设置

在这里插入图片描述

2.选择环境变量

在这里插入图片描述

3.新建Gradle系统目录

在这里插入图片描述

4.在path中配置到bin目录

java">%GRADLE_HOME%\bin

在这里插入图片描述

5.查看Gradle

cmd中输入gradle -v进行查看在这里插入图片描述

6. 配置Gradle的本地仓库

如果你有maven,你可以直接指定到maven的本地库,或你可以直接指定位置

在这里插入图片描述

QuickStart

基本Java项目构建

1.创建一个目录

java">mkdir first
cd .\first\

在这里插入图片描述

2.初始化

java">gradle init

在这里插入图片描述
如上放截图可见

  1. 我们首先选择2构建application
  2. 选择3构建为Java语言
  3. 选择1使用单文件工程
  4. 后续多个都是直接enter
  5. 选择Junit 4作为测试框架
  6. 然后都是enter默认
  7. 最后完成构建

如下通过tree命令,我们可以看到项目结构,可见和maven是一样的
在这里插入图片描述

使用IDEA进行创建

1.打开IDEA新建项目

在这里插入图片描述

2.配置Gradle到IDEA中

在这里插入图片描述

进入设置搜索gradle修改目录
在这里插入图片描述

在这里插入图片描述

3.用Spring Initializr构建

在这里插入图片描述
以下为第一次构建完成
在这里插入图片描述

4.启动测试

完成
在这里插入图片描述


http://www.niftyadmin.cn/n/1717132.html

相关文章

mysql group_concat()函数总结

group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果。比较抽象,难以理解。通俗点理解,其实是这样的:group_concat()会计算哪些行属于同一组,将属于同一组的列显示出来。要返回哪些列&am…

Gradle系列——常用指令,修改gradle源,Wrapper包装器(源于文档7.5版本,SpringBoot使用)day1-2

Gradle系列——常用指令,修改gradle源,Wrapper包装器(源于文档7.5版本,SpringBoot使用)day1-2Gradle常用指令注意点修改Gradle源1.打开gradle目录下的init.d文件夹2.添加一个init.gradle文件3.修改init.gradle阿里云官…

Gradle系列——Groovy概述,基础使用(基于Groovy文档4.0.4)day2-1

Gradle系列——Groovy概述,基础使用(源于文档7.5版本,SpringBoot使用)day2-1Groovy概述文档地址优点下载GroovyGroovy需求Groovy安装IDEA中构建Groovy项目Groovy基础使用基础语法1.构建Groovy类2.构建Groovy脚本3.混合定义类与脚本…

Linux结构

初学Linux,首先需要弄清Linux 标准目录结构 / root --- 启动Linux时使用的一些核心文件。如操作系统内核、引导程序Grub等。home --- 存储普通用户的个人文件 ftp --- 用户所有服务httpdsambauser1user2 bin --- 系统启动时需要的执行文件(二进制&#…

tomcat启动报错too low setting for -Xss stackoverflow

使用tomcat 7.0.3x版本的同学可以发现tomcat启动慢了不少,而且还可能遇到如下启动时异常: Unable to complete the scan for annotations for web application [] due to a StackOverflowError. Possible root causes include a too low setting for -Xs…

Gradle系列——Groovy面向对象(基于Groovy文档4.0.4)day2-2

Gradle系列——Groovy面向对象(基于Groovy文档4.0.4)day2-2Groovy面向对象类型原始类型整数类型浮点型布尔型char包装类型继承泛型Class类内部类匿名内部类静态内部类抽象类接口实现闭包(lambda表达式)语法闭包:lambda…

Gradle系列——Gradle测试,Gradle生命周期,settings.gradle说明,Gradle任务(基于Groovy文档4.0.4)day2-3

Gradle系列——Gradle测试,Gradle生命周期,settings.gradle说明,Gradle任务(基于Groovy文档4.0.4)day2-3Gradle测试修改支持Junit 5测试1.打开build.gradle文件2.加上test3.刷新Gradle依赖Gradle生命周期settings.grad…

去除List集合中的重复值

最近项目中需要对list集合中的重复值进行处理,大部分是采用两种方法,一种是用遍历list集合判断后赋给另一个list集合,一种是用赋给set集合再返回给list集合。 但是赋给set集合后,由于set集合是无序的,原先的顺序就打乱…