build 之前执行task_gradle中的task

在看文章之前,希望知其所以然的同学肯定希望能看到gradle相关的api,那么先行奉上gradle api的链接:

由于gralde使用的是groovy语言,所以语法看上去比较奇怪,好像描述性语言一样,不过,这对于创建一个工程来说已经足够了。

同其他的语言一样,groovy语言也有很多关键字,也有类型,task也是groovy语言中的一个类,配合内部的一些属性方法和固有的关键字,我们可以写出形形色色的task,来帮助我们做一些自动化的操作。

创建一个最简单的task应该是这样的:

task print{

print'hello world'}

task还提供了设置多个task之间的相互依赖关系,就可以用dependson关键字,如果任务不是你定义的,而是系统定义的,你想指定运行的先后顺序,也可以用mustRunAfter指定

task a(dependson:taskb){//可以写在括号内

println"i am a"}

task a(dependson:[taskb,taskc]){//也可以以数组的形式依赖多个数组

println"i am a"}

task a{//也可以分开写

println"i am a"dependson taskb

dependson taskc

}

build.mustRunAfter clean//android studio为我们定义好的task build 和clean 我们可以拿来直接使用

更进一步,配合上最常用的doFirst,doLast和dependson我们可以写出以下四个task

task task2{

println "task2"

}

task task3{

println "task3"

}

task task4{

println "task4"

}

task task1(dependsOn:[task2,task3,task4]){

println "task1"

doFirst{

println "task1 first"

}

doLast{

println "task1 last"

}

}

task1 <

println "task1 append"

}

//输出结果

task2

task3

task4

task1

task1 first

task1 last

task1 append

可以看到,优先顺序为depensOn>自己>doFirst>doLast> ">>符号"

不只是顺序,使用标准的task api,我们可以创建形形色色的任务,完成我们的需求

task showTasks{

println tasks.classprintln tasks.size()

}//output

class org.gradle.api.internal.tasks.DefaultTaskContainer_Decorated15//可以看到,tasks.size()是build下的任务总数,但其实,目录中所有的任务都是project的任务,详情见附图例如 你想在project build之前做一些拷贝so的操作:

project.preBuild.doFirst{

delete "../sdk/src/main/jniLibs/arm64-v8a"

copy{

from "../models/armeabi-v7a"

include "**.so"

into "../sdk/src/main/jniLibs/armeabi-v7a"

rename {

String fileName ->

"libss.so"

}

}

}//执行gradle preBuild时候,就会执行拷贝文件的操作

task hello {

doFirst{

println description//输出this is hello

}

}

hello.configure {//定义hello的属性

description = "this is hello"

}

但如果修改hello的定义为如下:

task hello {

println description //输出null,可以看到description的定义要在默认体和doFirst之间

}

常用的基本是这么多,如果有进一步需求,可以参考官方api

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值