通过示例学习依赖管理

在第 3 章中,您了解了如何使用 Jetty 插件将 To Do 应用程序部署到嵌入式 Jetty Servlet 容器。 Jetty 是一个方便在开发过程中使用的容器。 凭借其轻量级容器实现,它提供了快速的启动时间。 许多企业在其生产环境中使用其他 Web 应用程序容器实现。 假设您想要构建将 Web 应用程序部署到不同容器产品(例如 Apache Tomcat)的支持。

开源项目 Cargo (http://cargo.codehaus.org/) 为将 Web 应用程序部署到各种 Servlet 容器和应用程序服务器提供了多功能支持。 Cargo 支持两种可以在项目中使用的实现。 一方面,您可以利用 Java API,它使您可以细粒度地访问配置 Cargo 的各个方面。 另一方面,您可以选择执行一组包装 Java API 的预配置 Ant 任务。 由于 Gradle 提供了与 Ant 的出色集成,因此我们的示例将基于 Cargo Ant 任务。

让我们回顾一下图 5.1,看看组件在 Gradle 用例的上下文中如何变化。 在第 3 章中,您了解到项目的依赖项管理是在两个 DSL 配置块的帮助下进行配置的:依赖项和存储库。 配置块的名称直接映射到接口 Project 的方法。 对于您的用例,您将使用 Maven Central,因为它不需要任何额外的设置。 图 5.4 显示了依赖关系定义是通过 build.gradle 文件中的 Gradle DSL 提供的。 依赖项管理器将在运行时评估此配置,从中央存储库下载所需的工件,并将它们存储在本地缓存中。 您没有使用本地存储库,因此图中未显示。

本章的以下部分一一讨论每个 Gradle 构建脚本配置元素。 您不仅将学习如何将它们应用到 Cargo 示例中,还将学习如何应用依赖管理来实现您自己项目的需求。 让我们首先看一个在我们的示例上下文中变得更加重要的概念:依赖配置。