Gradle 学习(1)

Gradle的出现让构建系统不再依赖IDE。它有约定优于配置的原则,会给设置和属性提供默认值。它基于Groovy领域专有语言。他只是一个框架,一个空壳,真正的打包等工作都是运行给定的插件来实现的,比如安卓的gradle plugin就是安卓提供安卓方面打包部署功能的

  1. 基础概念

    项目:每个build.gradle 代表一个项目。每一次构建都包括至少一个项目。
    任务:每个项目包含一个或多个任务,一个任务包含多个动作。
    动作:是一个代执行的代码块,类似java方法。

  2. 构建生命周期

    就是执行任务的过程,执行任务中动作的过程,Gradle会创建一个动态的模型流。所有任务都会被一个一个执行,没有依赖会被优先执行,有依赖的关系的会按照依赖顺序执行。
    包括三个阶段:

    • 初始化:项目对象会被创建,如果这个项目有包括很多模块,并且每个模块都有自己的
      build.gradle,那么会创建多个项目对象。就是我们在安卓主项目下设置的
      setting.gralde文件,这个文件默认包含了app模块。
    • 配置:构建脚本会被执行,并为每个项目对象分配属于他们的任务
    • 执行:执行任务
  3. 结构

    项目下会有一个最顶部的build.gradle,定义了依赖的仓库和安卓Gradle插件的依赖。

    《Gradle 学习(1)》 project的build.gradle

各个模块也会有自己的build.gradle。例如,app模块下就会有android模块的配置和自己本身的依赖定义,又包括了flavor和builds Type定义和具体的版本定义等,具体内容会以后讲解。

《Gradle 学习(1)》 app的build.gradle

  1. Gradle Wrapper

    优于Gradle更新频繁,如果每次都手动设置正确的版本,会很麻烦。所以提供了Gradle
    Wrapper这个东西简化操作,我们只要运行它就会下载正确的版本并配置好使用上。
    他会读取gradle-wrapper.properties这个文件,并运行脚本gradlew(unix上)和
    gradlew.bat(windows上)下载对相应的gradle版本。

  1. 基本任务

    使用gradlew命令运行,gradlew命令是对gradle的二次封装,隐藏gradle内部可能的变化。

    • assemble:创建一个apk包,例如assembleDebug创建debug包
    • check:运行检查,设备或模拟器
    • build:assemble+check
    • clean:清空项目输出
    原文作者:ZSACH
    原文地址: https://www.jianshu.com/p/de3556399184
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞