前言
本书分为三个部分。 第一部分介绍了 Gradle 的概念和理念,解释了它与其他构建工具的比较,以及如何编写脚本来自动执行简单的任务。 第二部分更深入地探讨了该工具的构建模块和核心技术。 您应该能够使用这些知识来实现复杂的、可扩展的企业构建。 第三部分描述了如何在持续交付的环境中使用 Gradle,重点关注多语言构建、代码质量、工件组装和部署等主题。
第 1 部分 “Gradle 简介” 中的章节如下:
-
项目自动化简介——本章简要介绍了为什么自动化项目是个好主意以及构建工具如何帮助完成工作。
-
使用 Gradle 进行下一代构建 — Gradle 与现有 JVM 语言构建工具相比如何? 本章介绍 Gradle 的广泛功能集以及它如何帮助在持续交付部署管道的上下文中自动化软件交付流程。 作为第一次尝试,您将编写一个简单的构建脚本并在命令行上运行它。
-
通过示例构建 Gradle 项目——本章介绍一个基于 Java 的 Web 应用程序,作为演示 Gradle 一些核心功能的工具。 我们将探索 Java 插件在标准化和非常规用例中的使用,并研究用于快速开发周转的生产力工具。
第 2 部分,掌握基础知识,重点是将重要的 Gradle 概念应用到第 1 部分中介绍的案例研究中:
-
构建脚本要点—— Gradle 项目的主要构建块是什么? 本章讨论重要领域对象(即项目和任务)的使用。 我们将介绍这些对象如何映射到 Gradle API 中的相应类、Gradle 的构建生命周期、增量构建功能以及注册生命周期挂钩的机制。
-
依赖关系管理——任何企业项目都不能不重用外部库的功能。 本章探讨 Gradle 对依赖管理的声明式支持、版本冲突解决策略及其缓存的内部工作原理。
-
多项目构建——您的项目是否由多个模块化软件组件组成? 本章介绍了在多项目设置中组织构建逻辑的选项、如何声明项目依赖关系以及使用部分构建来缩短执行时间。
-
使用 Gradle 进行测试——测试代码是软件开发生命周期的一项重要活动。 在本章结束时,您将使用 JUnit、TestNG 和 Spock 编写测试,并将它们作为构建生命周期的一部分执行。 您还将了解如何配置测试执行、注册侦听器以对测试生命周期事件做出反应,以及如何借助源集组织不同类型的测试。
-
扩展 Gradle—Gradle 提供了可扩展的域对象模型。 如果您想向项目添加全新的功能或扩展现有的域模型,本章适合您。 您将学习如何编写自己的插件以将示例应用程序部署到云。
-
集成和迁移——在本章中,我们将了解 Gradle 如何与 Ant 和 Maven 集成。 如果您决定长期使用 Gradle,我们还将探讨迁移策略。
第 3 部分,从构建到部署,研究如何使用 Gradle 借助构建管道将示例应用程序从开发人员的计算机引入生产环境:
-
IDE 支持和工具——IDE 是提高开发人员生产力的关键推动因素。 本章介绍了 Gradle 为 Eclipse、IntelliJ 和 NetBeans 等流行 IDE 生成项目文件的功能。 我们还讨论了如何在这些 IDE 中导航和管理 Gradle 支持的项目。
-
构建多语言项目——在本章中,我们将使用您的案例研究应用程序作为示例,讨论 Gradle 如何应对组织和构建多语言项目的挑战。 您将集成的语言包括 JavaScript、Groovy 和 Scala。
-
代码质量管理和监控——在本章中,我们将重点介绍测量代码质量和可视化结果的工具,以帮助您查明代码中的问题区域。 当您完成本章时,您将了解如何将代码质量工具与您的构建集成。
-
持续集成——持续集成(CI)是一种软件开发实践,其中源代码被频繁集成,最好每天集成多次。 本章讨论在 Jenkins(开源 CI 服务器)上运行 Gradle 所需的安装和配置过程。
-
工件组装和发布——构建要么消耗要么生成二进制工件。 本章探讨工件组装过程以及将工件(包括其元数据)发布到二进制存储库所需的配置。
-
基础设施配置和部署——已配置的目标环境是任何软件部署的先决条件。 在本章中,我们将讨论 “基础设施即代码” 对于以自动化方式设置和配置环境及其服务的重要性。 稍后,您将使用 Gradle 实现示例性部署流程。
两个附录涵盖了其他主题:
-
驱动命令行——本附录解释了如何从命令行操作 Gradle。 我们将探索适用于所有 Gradle 构建的任务,以及命令行选项及其用例。
-
Groovy for Gradle 用户 - 如果您是 Groovy 的新手,本附录将简要介绍最重要且最广泛使用的语言功能。
谁应该读这本书?
本书主要面向想要实现易于阅读和扩展的可重复构建的开发人员和构建自动化工程师。 我假设您对面向对象的编程语言有基本的了解。 如果您具备 Java 的应用知识,您将能够充分利用这些内容。
在本书中,您将使用大量 Groovy; 但是,我不认为您已经具备该语言的经验。 要快速入门 Groovy,请参阅附录 B,面向 Gradle 用户的 Groovy。 附录还提供了其他参考书籍,深入探讨了该语言的更高级方面。
在整个章节中,我们将讨论在处理自动化构建时无法回避的主题。 对Ant、Ivy、Maven等工具有一定的了解会很有帮助; 持续集成和交付等实践; 以及依赖管理等概念。 但如果这不是您的技术背景,请不要担心。 每一章都会详细解释 “为什么”。