person holding black round fruits

Apache Groovy 的 Grape,轻松管理依赖

Apache Groovy 的 Grape 工具简化了依赖管理,让您可以直接在代码中声明库。这…
首页 » 博客 » Apache Groovy 的 Grape,轻松管理依赖

如果您厌倦了为 Apache Groovy 项目手动下载库,那么来了解一下 Grape:Groovy 内置的用于轻松管理依赖的工具。它允许您直接在代码中声明库,Grape 会自动处理下载和配置。尽管官方 Groovy 文档非常详尽,但本文提供了一个快速概述,并添加了上下文——特别是对于那些熟悉 Java 库的人。(如果您尚未安装 Groovy,请阅读本系列介绍。)

Java 自带一套非常丰富的库,这些库提供了超出基本语言的巨大能力,而 Groovy 程序员可以访问这些库,这归功于 Groovy 与 Java 的兼容性。此外,Groovy 的设计者以使其更“groovy”的方式增强了标准 Java 库。举一个简单的例子,Groovy 通过添加 sprintf() 方法来增强 Object 类,提供与 Java String.format() 方法相同的功能;但 sprintf() 更简洁,并且 C 程序员也更熟悉。另外,由于它被添加到类层次结构的顶部,因此它在任何地方都可用。

但是,无论 Java(或 Groovy)标准库多么丰富,许多东西都不属于标准库——例如,非常专业的功能;或处理标准库处理任务的替代方法。

一个包含专业功能和替代方法库的很好的例子是 Apache Commons,这是一个贡献代码的集合。Apache Commons 中包含的一些组件是 Collections,它扩展和增强了 Java Collections;Math,它提供了广泛的数学和统计函数;以及 Text,它提供了同样广泛的字符串操作功能。

除了 Apache Commons 之外,许多其他组织也在制作和分发各种 Java 库,以解决各种有趣的问题。

好消息是,有一个名为 Maven Central 的中央仓库,它存储了大量的 Java 库集合。此仓库专门设计用于与 Apache Maven 无缝协作,Apache Maven 是一种流行的工具,用于管理 Java 项目的软件组件,包括构建和文档。

假设我们有兴趣获取最新版本的 Apache Commons CSV,这是一个用于处理 CSV(逗号分隔值)格式文本文件的库。我们可以在 Maven Central 上搜索它,我们将被发送到一个页面,该页面显示了 Maven Central 上所有可用的版本。在我撰写本文时,org.apache.commons 上显示的最新版本是 2023-01-28 的 1.1.0。如果我单击该版本的链接,我将被带到一个提供各种项目的页面,其中包括一个名为“Groovy Grape”的项目,其中显示了以下内容

@Grapes(
  @Grab(group='org.apache.commons', module='commons-csv', version='1.10.0')
)

如果我想获取此版本的 Apache Commons CSV 以用于我的 Groovy 脚本,我只需在脚本前面加上上面的 @Grab 行,然后加上从库中引入所需类的 import 语句即可。

因此,原则上,Grape 对于 Groovy 就像 pip 对于 Python;一种简化的方式来包含有用的库,而无需进行大量手动下载 .jar 文件。

除了依赖管理之外,Grape 还提供了一个意想不到的好处:内置文档。它会自动记录您的 Groovy 项目中使用的库的特定版本。当重新访问旧代码时,尤其是在一段时间内或在不同系统上未运行的代码时,此信息变得非常宝贵。借助 Grape 的文档,您可以轻松识别并重新安装必要的库,以快速有效地使您的项目再次运行。

Apache Groovy 系列还有更多内容,同时赶上其他教程

作者

1 条评论

发表评论

如果您喜欢这篇文章,您可能也会喜欢这些