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

181 篇文章 3 订阅
8 篇文章 0 订阅

前言

以前学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目录

%GRADLE_HOME%\bin

在这里插入图片描述

5.查看Gradle

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

6. 配置Gradle的本地仓库

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

在这里插入图片描述

QuickStart

基本Java项目构建

1.创建一个目录

mkdir first
cd .\first\

在这里插入图片描述

2.初始化

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.启动测试

完成
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值