如今,我们对构建工具的要求越来越高,我们需要一种舒适的方式来运行测试、部署应用程序、生成文档和许多其他需求,这些需求太多,无法在这里一一列举。因此,构建工具也在不断发展。Java生态系统现在有Maven、Gradle、Ant和其他一些(比如Scala的简单构建工具——SBT)是为了解决编程中最古老的问题——构建自动化而诞生的。
我们将讨论Java最常用的三种构建工具:Maven、Gradle和Ant。我们将对它们进行比较,并就一种工具领先或落后于其他工具的情况提供一些建议。
1.Ant
Ant是第一个所谓的“现代构建工具”,用于自动化构建过程。它是用Java实现的,主要用于Java项目。Ant的第一个公开发行版是在2000年,它很快成为Java项目最流行的构建工具,这要归功于它的平台独立性(如Java),设置门槛低,并提供可重复的构建。后来,它还获得了接受插件的能力。
2.Maven
Maven于2004年首次发布,旨在改进开发人员在使用Ant和其他构建工具时遇到的一些问题。Maven最大的成就被认为是引入了项目结构约定、依赖关系管理和一个中心工件库Maven central。
Maven仍然使用XML来编写构建文件(pom.XML),但是结构非常不同,因为它变成了声明性的。现在,开发人员不必写下导致某些目标的所有命令,而是描述项目的结构(如果它与约定不同的话),Maven本身提供了程序员可以调用的可用目标。另外,Maven能够通过网络下载依赖项。
3.Gradle
Gradle是三个构建工具中最年轻的一个,它的开发人员试图将Ant的能力和灵活性与Maven的依赖关系管理和约定结合起来,以创建漂亮而闪亮的构建工具。经过几年的开发,GradleV1.0于2012年发布,并迅速开始流行起来。它发展得非常快,已经被一些大企业采用——例如,Gradle被选为谷歌Android操作系统的构建工具。
一个有趣的观点是,在Gradle中,XML不再被使用——相反,开发人员拥有一种基于JVM语言Groovy的领域特定语言(DSL),Groovy的发明是为了让开发人员摆脱XML的冗长,编写更简单、更清晰的语句。这在用户中引发了一场争论,即标准的、易于理解的(但冗长的)XML样式比DSL好还是坏。
领取专属 10元无门槛券
私享最新 技术干货