最近在看Benjamin Muschko 的《实战 Gradle》,虽然这本书并不是基于现在的android|Studio的角度来写的。但是描述的自动化构建原理非常的透彻,所以我在阅读的同时把它记录下来,希望能帮到需要这部分内容的朋友们.
项目自动化
- 自动化的好处
在项目没有自动化的时候,虽然IDE给我们做了很多的事情,但是代码的集成完全是一个灾难,而且测试过程慢的要死,每一次的部署都好像是在跑马拉松,打一个比方,想在一个项目里有两个小组,编写web前端页面的小组和编写支持前端的后台小组,当每个小组将代码编写完后,需要做的是到一台电脑上去编译这个项目,编译出一个可交付的软件,其中每一步都需要手动去完成,其中还会出现很多风险。
其实对于每一次 持续可充许多编译和交付方式我们完全可以进行自动化构建,它能够带来很多好处,首先,创建可重复的构建,能够解放重复劳动的时间,第二,构建能够随身携带,携带到任何一个平台,所以构建应该时基于命令行,不应该依赖于单一操作系统,最后,自动化的构建能够规避掉大部分的人为风险。
项目自动化的类型
(1)按需构建 典型用例就是用户在自己的机器上触发构建。
(2)触发构建 适合在敏捷开发中,通过提交操作来触发
(3)预定构建 预先设置时间调度来触发设计好的自动化构建
自动化构建工具
我们需要一个工具,它能够帮助我们创建一个可重复、可靠的、便携的且不需要手动干预的构建。java流行的开源构建工具,Ant和Maven. 但是Ant和Maven的优缺点都十分明显,xml的脚本语言臃肿而且无序,并且默认的标签和语法,限制了它的灵活性,所以我选择使用gradle.
Gradle 的有点几乎囊括了Ant和Maven的有点,并且具备它们所没有的。可表达性的构建语言和底层API、灵活的约定以及强大的依赖管理、灵活的插件定制、与其它构建工具较好的集成,这些都是gradle打败它们的理由。