我们天天和gradle打交道,但是在学这门课程之前如果你突然问我Gradle是什么,我说不上来个所以然来。平时的项目中也不太经常关注gradle的配置,经常就是遇到什么配置方面的问题百度一下基本就能查到。学习了这个课之后,当我再去看一些问题的解决方法的时候,可以做到心中有数,为什么这样做,而且还可以通过一些自定义的Task完成一些构建过程中我们想要做的事。
那么Gradle到底是什么呢
简单总结它就是一个构建工具,可以帮我们把代码生成apk的工具。
它是怎么做的
它是通过一个一个的Project中的Task完成的。每个含有build.gradle的文件夹就是一个Project,每个Project就对应一个输出,而具体执行工作的就是Project中的Task。各个Peoject和Task相互配合,最终完成apk的打包。
如何学习
一。groovy的语法
Gradle工程是基于groovy语言进行编写的,所以我们在学习Gradle之前,需要先了解Groovy的一些基本语法
1.1环境搭建:
配置环境变量:
安装InjectJIdea
1.2Groovy初探
老规矩,先来个Hello World
class GroovyHello {
public static void main(String[] args) {
System.out.println("hello world");
}
}
是不是感觉和Java一毛一样,来点不一样的
class GroovyHello {
static void main(args) {
System.out.println("hello world")
}
}
我们看到pulic,String[],";"都省略了,还能更简单
println "hello world"
连main入口都省略了,像写脚本一样。
而且省略了println后面的括号,所以我们在Gradle文件中看到这种语法,不要觉得他只是一个简单的配置,是编译器自动帮我们对方法进行了处理
1.3基础语法
变量
和JAVA一样分为基本类型,对象类型。
定义方式:既可以强类型定义方式,也可以弱类型定义方式
String str = ""
def str1 = ""
字符串定义
def str1 = '单引号定义'
def str2 = "单引号定义"
def str3 = '''三引号定义'''
String str4 = "格式化字符串${str3}"
逻辑控制
所有编程语言都一样:顺序逻辑,if/else,switch/case,for/while循环 和java稍有不同的是switch语句中case条件可以支持任意类型,非常强大
switch(x){
case 'a':
break
case 0:
break
case [4,5,6,'inlist']:
break
case 12..30:
break
case Integer:
break
}
闭包
闭包可以说是groovy中的很强大的特性之一,我们在gradle中看到很多的配置都是通过闭包实现的,怎么理解闭包呢,其实它就是一段代码块,是一段可执行的程序,和kotlin的高阶函数一样,可以通过参数传递。
闭包的定义:
def clouser = {String name -> prinln “ XXX ${name}”}
其中name就是闭包的参数,最后一行是闭包的返回值
闭包的调用
//第一种
clouser.call()
//第二种
println clouser()
闭包的一些应用
二。gradle的核心
三。gradle实战