公司自主开发了自动化构建工具,使用该工具可以实现项目版本的自动化集成。在使用的过程中,发现该工具底层调用的是Maven和Ant两种构建工具,近期maven由2.2.1版本升级至3.2.1版本的过程中时遇到了一些问题,于是便想自己研究一下Maven。切入正题,今天来简单对比一下各种构建工具的优缺点。
1.IDE(集成开发环境)
如Eclipse,是当前比较流行的IDE
优点:强大的文本编辑、调试功能
缺点:1.依赖大量的手工操作,效率低、容易出错
2.很难在项目中统一所有的IDE配置
2.Make
Make是早期的构建工具
优点:Make可以利用所有系统的本地命令,比如在Unix/Linux系统中,丰富的功能、强大的命令,能够帮助Make快速高效的完成任务。因此,在Linux系统中,本人还是偏向于使用Make
缺点:由于Make可以使用系统本地命令的特点,Make工具与系统绑定紧密。So,Make很难实现跨平台的构建功能
3.Ant
Another Neat Tool,另一个整洁的工具;其核心文件是build.xml
优点:1.跨平台的构建工具
缺点:1.过程式构建,因此项目中存在重复工作
2.没有依赖管理
4.Maven
Maven是基于Java平台的项目构建、项目信息管理工具;其核心文件是pom.xml
优点:1.依赖库管理:通过坐标系统准确的定位每个构建(aritfact),即通过一组坐标,maven可以找到任何一个Java类库(如jar文件)
2.跨平台:这也就意味着在windows、Linux和Mac系统上,可以使用相同的mvn命令
3.强大的仓库管理功能
缺点:1.相关文档比较少,内容相对复杂,学习难度较大
2.pom.xml文件内容比较复杂,初学者很难搞清楚依赖关系