1.Building tool是什么?html
(Building tool)构建工具是一种工具,它负责构建流程的全部内容,并自动化与构建项目相关的全部内容。它致力于如下任务:java
2.为何要使用Building tool?程序员
Build tool(构建工具)是从源代码自动建立可执行应用程序的程序。构建包括将代码编译,连接和打包成可用或可执行的形式。在小项目中,开发人员一般会手动调用构建过程。这对于较大的项目来讲是不实际的,在这些项目中,很难跟踪须要构建的内容,构建过程当中的顺序和依赖关系。使用自动化工具可使构建过程更加一致;(Building tool)可让任务自动化,能够最大限度地下降人工在手动构建软件时出错的风险,而且一般比手动执行相同过程的人员更快地进行构建。编程
使用(Building tool)构建工具对软件开发项目的好处:服务器
3.Java世界如今主流的Building tool有哪些?网络
Java世界中主要有三大构建工具:Ant、Maven和Gradle。通过几年的发展,Ant几乎销声匿迹、Maven也日薄西山,而Gradle的发展则如日中天。maven
Gradle和Maven都是项目自动构建工具,编译源代码只是整个过程的一个方面,更重要的是,你要把你的软件发布到生产环境中来产生商业价值,因此,你要运行测试,构建分布、分析代码质量、甚至为不一样目标环境提供不一样版本,而后部署。整个过程进行自动化操做是颇有必要的。工具
Ant:测试
Ant是所谓的“现代构建工具”中的第一个,用于自动化构建过程。从理论上讲,它有点像Make,没有Make的皱纹。它以Java实现,主要用于Java项目。Ant的第一个公开发行版是在2000年,因为独立于平台(如Java),具备较低的设置障碍和提供可重复的构建,它很快成为最受欢迎的Java项目构建工具。后来,它也得到了接受插件的能力。gradle
然而,Ant被批评有一些缺点。构建脚本是用XML编写的,XML本质上是分层的,不适合程序编程,这在构建脚本中常常须要。Ant常常声称过于冗长,这意味着它最终会使大型项目的构建脚本难以管理。
Maven:
Maven于2004年首次发布,旨在改进开发人员当时使用Ant和其余构建工具所遇到的一些问题。Maven的最大成就被认为是项目结构约定,依赖关系管理和中央工件库Maven Central的引入。
Maven仍然使用XML来编写构建文件(pom.xml),但结构很是不一样,由于它变成了声明式的。如今开发人员没必要记下致使某些目标的全部命令,而是描述项目的结构(若是它与约定不一样),Maven自己提供了程序员能够调用的可用目标。此外,Maven可以经过网络下载依赖项。
Gradel:
Gradle是三者中最年轻的构建工具,它的开发人员试图将Ant的强大功能和灵活性与Maven的依赖管理和约定相结合,以建立漂亮而有光泽的构建工具。通过几年的开发人员,Gradle v1.0于2012年发布,并迅速开始流行起来。它正在快速发展并已被一些大型企业采用 - 例如,Gradle被选为Google Android操做系统的构建工具。
一个有趣的观点是,使用Gradle,XML再也不使用了 - 相反,开发人员拥有基于JVM语言Groovy的域特定语言(DSL),这是发明的,所以开发人员能够抛弃XML的冗长,写得更简单明了声明。这引起了用户之间的争论,即标准的,易于理解(但冗长的)XML风格是否比DSL更好或更差。
参考:
https://developer.fedoraproject.org/tech/languages/java/java-build-tools-installation.html
https://zeroturnaround.com/rebellabs/java-build-tools-maven-gradle-and-ant-plus-the-dsl-vs-xml-debate/