编程项目构建工具简介
在进行编程操作的时候,我们常常会遇到很多与编程无关的项目管理工作,如下载依赖、编译源码、单元测试、项目部署等操作。一般的,小型项目我们可以手动实现这些操作,然而大型项目这些工作则相对复杂。构建工具是帮助我们实现一系列项目管理、测试和部署操作的工具。
软件构建(Software Build)是指软件开发过程中涉及到的一系列处理工作,如将源代码编译成二进制代码,打包二进制代码,运行自动化测试等。为了方便编程人员的操作,人们开发了自动构建(Build Automation)工具来帮助人们处理这些工作。这篇博客将简单介绍构建工具的概念。
一、为什么需要构建工具
在国内高校的编程课中,比如,以合肥工业大学管理学院电子商务专业的编程课为例。一般都是从Java编程基础教起,在安装好JDK之后,开始使用一个记事本编写一个HelloWorld.java,里面内容是打印出Hello World。接下来教大家使用JCreator工具来编写程序,实现输出。之后的教学主要内容在Java知识上,对于项目开发的经验和知识则很少描述。于是很多同学不理解,为什么要用JCreator编写程序,或者是JCreator很好用,为什么后面大家用Eclipse、IntelliJ IDEA这种工具来开发Java。
这些工具都是IDE,也就是为了方便开发人员组织代码文件,管理项目而开发的。IDE其实也可以实现编译、打包的功能。既然如此为何还需要构建工具呢?为什么很多IDE软件都提供了各种构建工具插件呢?个人认为,IDE本身是为了提供开发人员编程的工具,因此整合了项目管理和构建的一些功能。而构建工具的目标是为了管理依赖、编译、打包和部署。因此,后者更像是提供编程的依赖环境和外部包,并帮助发布部署项目的。它的对项目管理支持的功能和目标比IDE更纯粹也更强大(比如大部分构建工具都有中央库,收集了几乎所有开源的外部包提供给开发者自动导入外部包的功能,而一般IDE的这方面功能也是通过构建工具实现的。同时,构建工具几乎都支持命令行运行,来帮助我们打包、编译和发布等,证明它并不是提供一个编写代码的环境,而是作为管理的工具存在。而IDE几乎都是有界面,可以提供代码编写的)。此外,网络上还有一些说法(https://www.oschina.net/question/558461_117208):
一般而言.一个比较正规的项目都不会基于IDE 进行构建..一般会用ant, maven, gradle, 为什么不用ide 呢?首先,是ide的选择,有人喜欢,用vim,eclipse,intellijidea,收费的,免费的. 特别是公开的项目,你用什么IDE 相当于为这个IDE 打广告了.. 所以,一般而言都是用构建工具,而不是IDE.实际上各种IDE 也是基于各种构建系统,也正是不同的IDE,它们的构建方式不同,所以要让不同的IDE间能一起开发,于是需要一个统一的构建工具,只是你平时不关注而已..
