为了账号安全,请及时绑定邮箱和手机立即绑定

Android开发之Gradle

标签:
Android

Android开发之Gradle

Gradle是一个基于JVM的构建工具,目前Android Studio中建立的工程都是基于gradle进行构建的。Gradle的与其他构建工具(ant、maven)的特性主要包括:

  • 强大的DSL和丰富的gradle的API

  • gradle就是groovy

  • 与其他构建工具的集成

  • 强大的依赖管理 可拓展性

  • 与其他构建工具的集成

表格

Markdown Extra 表格语法:

项目价格
Computer$1600
Phone$12
Pipe$1

三种构建脚本

Gradle的脚本都是配置型脚本。每一种脚本类型实际上都是某个具体的gradle的API中的类对象的委托,脚本执行对应的其实是其委托的对象的配置。在一个完整的gradle的构建体系中,总共有三种类型的构建脚本,同时也分别对应着三种委托对象

脚本类型委托对象
Init scriptGradle
Settings scriptSettings
Build scriptProject

init.gradle

对应的就是上面的Init script,实际上就是Gradle对象的委托,所以在这个init
脚本中调用的任何属性引用以及方法,都会委托给这个 Gradle 实例。  
Init script的执行发生在 构建开始之前,也是整个构建最早的一步。

配置Init scrip的依赖

每个脚本的执行都可以配置当前脚本本身执行所需要的依赖项。Init
scrip的配置如下:

initscript { 
    repositories { 
        mavenCentral() 
    } 
    dependencies { 
        classpath group: 'org.apache.commons', name: 'commons-math', version: '2.0' 
    } 
}

使用Init scrip

要使用一个定义好的Init scrip,主要有以下几个方式

  • 在执行gradle命令的时候,通过-I--init-script命令选项指定脚本的路径 这种方式可以针对具体的一次构建。

  • 把一个init.gradle文件放到 USER_HOME/.gradle/` 目录

  • 把一个文件名以.gradle结尾的文件放到Gradle

settings.gradle

对应的是Settings script脚本类型,是Settings对象的委托。在 脚本中调用的任何属性引用以及方法,都会委托给这个 Settings实例。

Settings script的执行发生在gradle的构建生命周期中的 初始化阶段。Settings脚本文件中声明了构建所需要的配置,并用以实例化项目的层次结构。在执行settings脚本并初始化Settings对象实例的时候,会自动的构建一个根项目对象rootProject并参与到整个构建当中。(rootProject默认的名称就是其文件夹的名称,其路径就是包含setting脚本文件的路径)。

因此,在settings的脚本文件中,我们可以访问使用的对象包括:

  • Settings`对象

  • Gradle`对象

  • ProjectDescriptor`对象

获取settings文件

在gradle中,只要根项目/任何子项目的目录中包含有构件文件,那么就可以在相应的位置运行构建。而判断一个构建是否是多项目的构建,则是通过寻找settings脚本文件,因为它指示了子项目是否包含在多项目的构建中。
查找settings文件的步骤如下:  
1. 在与当前目录同层次的master目录中搜索setting文件  
2.如果在1中没有找到settings文件,则从当前目录开始在父目录中查找settings文件。

当找到settings文件并且文件定义中包含了当前目录,则当前目录就会被认为是多项目的构建中的一部分。

build.gradle

对应的就是前面提到的Build script脚本类型,是gradle中Project对象的委托。在脚本中调用的任何属性引用以及方法,都会委托给这个
Project 实例。

配置脚本依赖

在build.gradle文件中有一个配置块buildScipt{}是用于配置当前脚本执行所需的路径配置等的(与initScript形似)。

buildscript { 
    repositories {
        mavenLocal() 
        google() 
        jcenter() 
    } 
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2' 
    } }

这里补充关键的一点,在build.gradle文件中,不管buildScript{}配置块被放在哪个位置,它总是整个脚本文件中最先被执行的

作者:     缪枢民  原文出处


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消