介绍一下gradle的构建脚本基础知识,在这之前简单说一下gradle的介绍与安装
gradle介绍:
gradle是一个基于JVM的构建工具,类似于Ant和maven,但是比ant和maven更为强大,它基于groovy的构建脚本。gradle里的任何东西都是基于projects和tasks,每一个构建是由一个或多个project构成,一个project又由一个或多个task。
gradle安装(Mac):
- gradle需要运行在一个java环境里,所以安装gradle之前,需要安装java JDK。
- 安装gradle的方式有很多种,我是通过brew来安装的:
- 若没有安装homebrew,请去homebrew官网查看一下安装,也可以看一下这个博客:https://my.oschina.net/gef/blog/658168
- 安装brew之后,使用命令:
brew install gradle
安装gradle
-
完成之后,执行命令:
gradle -v
若出现:
------------------------------------------------------------ Gradle 2.12 ------------------------------------------------------------ Build time: 2016-03-14 08:32:03 UTC Build number: none Revision: b29fbb64ad6b068cb3f05f7e40dc670472129bc0 Groovy: 2.4.4 Ant: Apache Ant(TM) version 1.9.3 compiled on December 23 2013 JVM: 1.8.0_40 (Oracle Corporation 25.40-b25) OS: Mac OS X 10.11.4 x86_64
说明安装成功。
gradle构建脚本基础:
- hello world:创建一个build.gradle文件,然后写一个hello world:
task hello{ doLast{ println 'Hello world!' } }
然后打开终端,cd到该目录下,执行:
gradle hello
输出:
:hello Hello world! BUILD SUCCESSFUL Total time: 4.593 secs This build could be faster, please consider using the Gradle Daemon: https://docs.gradle.org/2.12/userguide/gradle_daemon.html
你也可以执行:,发现没有那些日志信息了。
-
快捷的任务定义:
task hello3 << { println 'hello world 3!' }
其中 << 就相当于 doLast
-
任务依赖:
task task2(dependsOn : "task1") << { println "task2" } task task1 <<{ println "task1" }
或
task task1 <<{ println "task1" } task task2(dependsOn : task1) << { println "task2" }
或
task task1 << { println "task1" } task task2 << { println "task2" } task2.dependsOn task1
-
动态任务:
4.times { i -> task "taskk$i" << { println "I am task number $i" } }
生成了4个任务:taskk0,taskk1,taskk2,taskk3,执行
-
使用已经存在的任务:
task sumu <<{ println "sumu1" } sumu.doLast{ println "sumu2" } sumu.doFirst{ println "sumu3" } sumu << { println "sumu4" }
然后执行:,注意一个任务的doFirst和doLast可以有多个。
-
短标记法:
task ffge <<{ println "你好,$ffge.name" }
执行:
-
自定义任务属性:
task person { ext.name = "张三" ext.age = 10 doFirst{ println "名字为:$name,年龄为:$age" } }
执行:
-
默认任务:
defaultTasks "hello" task hello{ doLast{ println 'Hello world!' } }
执行:
OK,到此结束。