继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Gradle3.0自动化构建实战

2018-04-11 12:03:305978浏览

qndroid

1实战 · 15手记 · 17推荐
TA的实战

在文章开始之前,首先问大家几个问题,什么是构建,什么又是自动化构建,为什么要自动化构建以及如何让我们的构建自动化?下面我们围绕这几个问题来为大家展开分析为什么要使用Gradle来做这些事情。

构建其实说的通俗点就是打包,这个不管你是学什么编程语言的都要走的最后一步,比如android的构建目的是生成最终的apk可执行文件,java web的构建最终是要构建出wap可执行文件,其它语言也都是这样的,所以从概念上来讲,构建的核心就是产出最终的可执行文件,这样我们写的代码才是有意义的。

那我们在实际工作又是如何去完成构建这一步的呢,当然是通过一些构建工具了,传统的构建工具有ant,maven,新一代的构建工具就是我们的重点:gradle.说到前两个工具,开发过一定时间的同学一定都听说过,这两个工具在以前是被用的最多的,他们简单并且使用起来也很方便。但是随着我们软件工程的发展,工程变得越来越庞大,对构建的要求越来越多,比如android包的多个渠道包等,传统的ant,maven等工具已经越来越不适用我们的开发节奏,这时候gradle这一新的构建工具就应运而生,通过gradle我们可以更加灵活的控制我们的构建流程,gradle为什么更灵活呢,我们在最后一个问题中来回答自己,大家先知道gradle也是用来做构建的就可以了。

什么是自动化构建

在了解了构建以及构建的相关工具以后,那什么又是自动化构建呢,故名思意,就是通过一定的配置或者代码以后,让我们整个构建的流程全自动的走起来,而不需要我们开发人员再去介入,举个通俗的例子就像是我们在装系统的时候,只要在一开始确定好各种选项后就一直等他安装完毕即可。自动化构建就是这样,只需要我们写出满足条件的配置或者代码,整个构建流程就不需要我们关心直到最后的打包输出完成,在了解了自动化构建是什么以后,相信大家一定想知道,我们如何实现自动化构建呢, 以前的ant,maven就做不到吗,为什么要学gradle才能去做。下面我们就来为大家详细的解答。
我们首先来说一下ant,maven为什么做不到,其实原因很简单,因为ant,maven等工具都是基于xml去配置的,xml就是一种配置文件而无法做到流程控制,你能用xml写一个if-else出来吗,即使可以也很复杂,这就是ant,maven无法做到自动化构建的核心原因,那gradle为什么可以呢,原因也很简单,因为gradle本身就是一个编程框架,框架中提供了丰富的API来用于构建,因为gradle是程序,所以我们可以轻松的写出各种流程控制语言,通过程序的选择,循环等流程控制语句,我们可以任意的控制整个构建的走向,让它完全在我们开发人员的掌握之中,在了解了gradle为什么可以自动化构建以后,那gradle本身是如何实现的呢,其实主要分以下三个步骤去实现自动化构建。

第一步,init阶段,也就初始化阶段,这是gradle生命周期中的第一步,这一部的主要作用就是确实我们的工程中到底那些子module要被构建到最终的可执行文件中,gradle为我们提供了一个类叫Setting,通过使用这个类我们可以动态的去决定那些module要被加入到构建中,例如,我们在开发中经常有一个Test工程,这个时候,我们就可以通过Setting来灵活的控制要不要将这个工程加入到最终的构建中。核心代码如下:

第二步,config阶段,也就是配置阶段,这是gradle生命周斯中的第二步,也是我们核心要编写代码的一步,我们的写的构建代码大部分都执行在这一步中。所以为了完成这一步,gradle为我们提供了Project类,这个类的一个对象就对应一个具体的module, 这样我们通过编写这个Project类,就可以完成对对应module的配置,当所有module的配置都完毕以后,配置阶段也就顺利的完成了。

第三步,就是我们的执行阶段,我们上面两步都是为了最终的这个执行阶段去做准备的,因为这一步才会真正的根据我们的初始化和配置代码去成生真正的可执行文件,那gradle如何让执行阶段执行起来呢,它又为我们提供了另外一个非常核心的类叫: Task,我们最终的可执行文件的输出都是通过一系列的Task依次执行去生成的,当然我们就可以通过提供的Task类,去为我们的构建流程做一些特殊的事情,例如,我们想在可执行文件结束以后,自动将我们的包上传到我们的管理平台,这个时候我们就可以通过扩展一个Task去实现这个功能,并接入到整个的构建流程中去,这样我们就不再需要等到打包完毕后再去手动上传,全部自动化搞定。
最后,gradle当然不仅仅只有这么几个类和这么点用处,他的用法和功能还是相对有一定的复杂性的,所以想了解的同学一定要系统的学习一下gradle,而慕课网也提供了这样一门课程,大家可以去深入的学习gradle自动化构建

打开App,阅读手记
11人推荐
发表评论
随时随地看视频慕课网APP