当前位置: 首页 > news >正文

北海做网站哪家好外链群发

北海做网站哪家好,外链群发,重庆医院门户网站建设,网络工作室创业项目task执行顺序dependsOn 一个 Task 是由一序列 Action (动作)组成的,当运行一个 Task 的时候,这个 Task 里的 Action 序列会按顺序依次执行。 doFirst\doLast之外的代码只是配置代码,它们并不是 Action ,Task 里的 Action 只会在…

task执行顺序dependsOn

一个 Task 是由一序列 Action (动作)组成的,当运行一个 Task 的时候,这个 Task 里的 Action 序列会按顺序依次执行。

doFirst\doLast之外的代码只是配置代码,它们并不是 Action ,Task 里的 Action 只会在该 Task 真正运行时执行,Gradle 里通过 doFirst、doLast 来为 Task 增加 Action 。

  • doFirst:task执行时最先执行的操作

  • doLast:task执行时最后执行的操作

  • task内除了doFirst、doLast之外都是配置时执行

配置顺序:从上到下

task内执行顺序:doFirst -> doLast

task间可以通过mustRunAfter vs dependsOn vs finalizedBy调整顺序

  • dependsOn - 设置任务依赖关系。

  • mustRunAfter - 设置任务执行顺序。

  • finalizedBy - 为任务添加一个当前任务结束后立马执行的任务

测试: 定义task1、task2、task3、task4,并让他们按照4321的顺序执行


task task2 {sleep 1000println "=====task2====="doFirst {sleep 1000println "=====task2 first====="}doLast {sleep 1000println "=====task2 last====="}
}task task4 {sleep 1000println "=====task4====="doFirst {sleep 1000println "=====task4 first====="}doLast {sleep 1000println "=====task4 last====="}
}task task3 {sleep 1000println "=====task3====="doFirst {sleep 1000println "=====task3 first====="}doLast {sleep 1000println "=====task3 last====="}
}task task1() {//configuretask3.dependsOn task4task2.dependsOn task3task1.dependsOn task2//configureprintln "=====task1====="//actiondoFirst {println "=====task1 first====="}//actiondoLast {println "=====task1 last====="}
}
//
//Executing tasks: [task1] 
//
//
//> Configure project :app
//=====task2=====
//=====task4=====
//=====task3=====
//=====task1=====
//
//> Task :app:task4
//=====task4 first=====
//=====task4 last=====
//
//> Task :app:task3
//=====task3 first=====
//=====task3 last=====
//
//> Task :app:task2
//=====task2 first=====
//=====task2 last=====
//
//> Task :app:task1
//=====task1 first=====
//=====task1 last=====

自定义Task类

//自定义Task类,必须继承自DefaultTask
class SayHelloTask extends DefaultTask {String msg = "default name"int age = 18//构造函数必须用@Inject注解标识@InjectSayHelloTask(int age) {this.age = age}//通过@TaskAction注解来标识该Task要执行的动作@TaskActionvoid sayHello() {println "Hello $msg ! age is ${age}"}}//通过constructorArgs参数来指定构造函数的参数值
task hello1(type: SayHelloTask, constructorArgs: [30])//通过type参数指定task的父类,可以在配置代码里修改父类的属性
task hello2(type: SayHelloTask, constructorArgs: [18]) {//配置代码里修改 SayHelloTask 里的字段 msg 的值msg = "xq"age = 25
}
http://www.lbrq.cn/news/2662021.html

相关文章:

  • 二手书哪个网站做的好搜索引擎优化的方法包括
  • 重庆网站建设哪家公司好中国今天刚刚发生的新闻
  • 在线网页转pdf单页网站排名优化
  • 鹰潭门户网站建设费用安阳seo
  • 什么是网站备案广告竞价推广
  • 做网站 什么语言威海seo
  • 网络营销研究背景及意义seo顾问是干什么
  • app网站开发学习什么是seo标题优化
  • 如何对网站管理网络seo哈尔滨
  • 校友网站 建设百度榜单
  • 孝感网站建设公司短视频营销案例
  • 什么样的网站需要认证百度认证平台官网
  • abc建站网品牌推广包括哪些内容
  • 现在做网站建设的公司多么网页制作app手机版
  • 网站建设前景如何网站秒收录工具
  • 珠海网站制作推广公司万网官网域名查询
  • 怎样做公司官方网站上海网站关键词排名优化报价
  • 地产项目网站建设ppt种子资源地址
  • 免费b站在线观看人数在哪儿关键词优化seo外包
  • 网站建设lieyanmaseo图片优化的方法
  • 汕头网站建设推荐微博指数查询入口
  • 中国建设部网站官网推广计划方案
  • 网站已备案 还不能访问怎么把产品放到网上销售
  • 网站建设有什么好处流量推广平台
  • 网站长尾词挖掘创意广告
  • 阿里巴巴网站是用什么技术做的seo搜索引擎优化题库
  • 如何做论文网站百度快照怎么弄
  • 做网站能不能放暴露图片品牌线上推广方案
  • 商贸网站建设网络推广靠谱吗
  • 昆明市做网站淘宝排名查询工具
  • 【论文阅读】Deep Adversarial Multi-view Clustering Network
  • 安装NodeJS和TypeScript简要指南
  • 鸿蒙分布式任务调度深度剖析:跨设备并行计算的最佳实践
  • vulnhub-Beelzebub靶场通关攻略
  • 【代码随想录day 14】 力扣 104.二叉树的最大深度
  • 第39周——训练自己的数据集