构建工具

  在进行编程操作的时候,我们常常会遇到很多与编程无关的项目管理工作,如下载依赖、编译源码、单元测试、项目部署等操作。一般的,小型项目我们可以手动实现这些操作,然而大型项目这些工作则相对复杂。构建工具是帮助我们实现一系列项目管理、测试和部署操作的工具。

  对于大中型的项目,都会依赖很多外部开发资源。网络上开源了大量的代码,在我们编写程序的时候可以帮助我们减少重复性的工作,大大提升复用情况,降低编程难度。对于这种项目的代码维护,以及依赖维护是很复杂的。什么程序依赖什么版本的什么外部包,如果不使用构建工具帮助我们管理这些依赖,那将增加开发人员大量的负担。因此,构建工具在帮助我们管理这些东西,大大提升编程效率。

  在Java的世界里,目前在被使用的常用构建工具有三个:Ant,Maven,Gradle。

  Ant的核心是由Java编写,采用XML作为构建脚本,这样就允许你在任何环境下,运行构建。Ant基于任务链思想,任务之间定义依赖,形成先后顺序。缺点是使用XML定义构建脚本,导致脚本臃肿,Ant自身没有为项目构建提供指导,导致每个build脚本都不一样,开发人员对于每个项目都需要去熟悉脚本内容,没有提供在Ant生态环境内的依赖管理工具。

  Maven团队意识到Ant的缺陷,采用标准的项目布局,和统一的生命周期,采用约定由于配置的思想,减少构建脚本需要的编写内容,活跃的社区,可以方便找到合适的插件,强大的依赖管理工具。缺点是采用默认的结构和生命周期,太过限制,编写插件扩展麻烦,XML作为构建脚本。

  而Gradle同时拥有Ant和Maven的优点,它是基于Groovy的DSL,提供声明式的构建语言,采用标准的项目布局,但拥有完全的可配置性,就是可以改,通过插件,提供默认的构建生命周期,也可以自己定义任务,单独运行任务,定义任务间的依赖,强大的依赖管理工具,与Maven和Ivy仓库结合,与Ant天生兼容,有效的重用Ant的任务,多种实现插件的方式,强大的官方插件库,从构建级别,支持从Ant或者Maven的逐步迁移,通过包装器,无缝的在各个平台运行。

posted @ 2019-03-23 13:15  Qqq_65536  阅读(95)  评论(0编辑  收藏  举报