📜  Gradle 简介

📅  最后修改于: 2021-10-21 04:58:54             🧑  作者: Mango

Gradle是一个优秀的开源构建工具,能够开发任何类型的软件。该工具是由一群名为 Hans Dockter、Szczepan Faber Adam Murdoch、Luke Daley、Peter Niederwieser、Daz DeBoer 和 Rene Gröschke 的开发人员在 13 年前开发的。它是一个基于 Apache Ant 和 Apache Maven 的自动化工具。该工具能够开发符合行业标准的应用程序,支持多种语言,包括 Groovy、C++、 Java、Scala 和 C。Gradle 还能够控制从编译和打包到测试、部署和发布的开发任务。

Gradle 的历史

与 Ant 和 Maven 相比,Gradle 是最稳定的工具。该工具最初于 2007 年底发布,作为前辈的替代品,不仅取代了它们,而且还弥补了它们的缺点。其稳定版本于 2019 年发布,目前最新版本为 6.6。

Gradle 的工作

Gradle 项目在构建时由一个或多个项目组成。这些项目由任务组成。让我们了解这两个术语的基础知识。

1. Gradle 项目:Gradle创建的项目是一个 web 应用程序或一个 JAR 文件。这些项目是一项或多项任务的组合。这些项目能够部署在各种开发生命周期中。 Gradle 项目可以被描述为用 N 块砖建造一堵墙,这些砖块可以被称为任务。

2. Gradle 任务:任务是负责特定角色的功能。这些任务负责创建类、Javadoc 或将档案发布到存储库中,从而完成 Gradle 项目的整个开发。这些任务帮助 Gradle 决定要为特定输出处理哪些输入。同样,任务可以分为两种不同的方式:

  • 默认任务:这些是 Gradle 提供给用户的预定义任务。这些是提供给用户之前的,当用户自己没有声明任何任务时执行。例如,将提供给用户的默认任务初始化并包装到 Gradle 项目中
  • 自定义任务:自定义任务是开发人员为执行用户定义的任务而开发的任务。这些是为了在项目中运行特定角色而开发的。下面我们来看看如何开发自定义任务。

示例:打印 欢迎来到 GeeksforGeeks!在 Gradle 中执行任务。

Java
build.gradle : task hello
{
    doLast
    {
        println 'Welcome to GeeksforGeeks!'
    }
}


输出:

> gradle -q hello
Welcome to GeeksforGeeks!

摇篮的特点:

  • IDE 支持: Gradle 支持多种 IDE(集成开发环境)。这是一个支持多种开发环境的内置工具。
  • 熟悉Java: Gradle项目需要Java环境JVM才能运行。 Gradle 的特性也与Java相似。它还支持Java支持的 API,这对开发人员来说是最大的优势,并且使其具有通用性。
  • 任务和存储库支持: Gradle 工具支持 Ant 和 Maven 构建工具的功能。它允许将 Ant 项目导入到 Gradle 环境中。它还支持导入 Maven 存储库,并允许在现有项目中使用基础结构。
  • 构建: Gradle 只为必要的任务提供构建,就好像它只编译上次构建之前完成的更改一样。它减少了加载时间。
  • 免费和开源: Gradle 是一个开源构建的工具,使其用户友好,并在 ASL(Apache 许可证)下获得许可。
  • 多设计构建支持: Gradle 构建工具实现了多种构建支持,因为在设计一个根项目时,它可能包含多个子项目,而这些项目可以有多个项目。在 Gradle 的帮助下,可以轻松构建布局。

使用 Gradle 的优点

  • 声明性构建: Gradle 的 Groovy 语言提供声明性语言元素。它会检查之前的源代码是否有更改,然后进行编译。
  • 可扩展性:使用 Gradle 创建的应用程序具有高度的可扩展性,因为它可以提高生产力。它允许我们进入模型基础设施,这有助于组织工作。
  • Deep API:在此 API 的支持下,开发人员可以轻松自定义配置并监控执行行为。
  • 免费开源: Gradle 是一个开源项目,拥有良好的社区支持。
  • 易于移动: Gradle 具有适应任何项目结构的特性。它还支持创建插件,这有助于项目开发。

使用 Gradle 的缺点

  • 技术专长:要使用 Gradle 构建任务,需要具备先前的技术技能。
  • 语言依赖:要使用 Gradle 需要有 Groovy 或Java语言的基本知识。
  • 集成:添加功能非常复杂,因为它需要在投入使用之前进行正确配置。
  • 可理解性 Gradle 文档非常全面。它需要事先了解术语。