Step into Gradle - 02 - Project 和 Task
来源:互联网 发布:高斯如果在清华 知乎 编辑:程序博客网 时间:2024/06/05 07:25
目录
- Project 和 Task
- 概述
- Project
- 获得 Project 对象
- Project API
- Task
- 建立 Task
- 获得某个 Task 对象
- 默认 Task
- 动态创建 Task
- 追加行为
- 依赖外部 Task
- 指定 Task 执行顺序
- 禁用指定 Task
- Project 和 Task
摘要
project api,建立 Task(2 种),获得 Task,动态创建 Task,依赖外部 Task,指定执行顺序
Project 和 Task
概述
运行时 gradle 会先成 project 对象,然后再生成 task 对象,对于不属于任何 task 的代码则生成为统一的 script 对象。
Project
获得 Project 对象
project(projectName)
Project API
task projApi << { println name //projApi println project.name //core println path //:core:projApi println buildDir //Users/me/Documents/bitbucket/steps_java/learn_gradle/core/build println projectDir //Users/me/Documents/bitbucket/steps_java/learn_gradle/core}
运行
gradle -q projApi
当方法和属性没有在 build 脚本中定义时,gradle 会试图访问对应的 project 的成员
Task
建立 Task
第一种方式
task hello { println "hello world"}
以上代码定义了一个 Task,并指定了配置该 Task 时执行的代码。
第二种方式
task hello << { println "hello world"}
以上代码定义了一个 Task,并指定了执行此 Task 时执行的代码。实际为以下代码的简写形式
task hello { doLast { println "hello world" }}
task 有 configuration 和 action,当使用
<<
实际是定义了一个 action 的快捷方法
获得某个 Task 对象
project(projectName).taskName
或
project(projectName).property(taskName)
默认 Task
不指定任何 Task 时,gradle 会执行默认 Task
task d1 << { println "d1"}task d2 << { println "d2"}defaultTasks "d1", "d2"
运行
gradle -q
动态创建 Task
4.times { counter -> task "task$counter" << { println "I'm task number $counter" }}
运行
gradle -q task1
追加行为
task hi << { println "hi world"}hi.doFirst { println "first"}hi.doLast { println "last"}hi << { println "HELLO WORLD"}
运行
gradle -q hi
输出
firsthi worldlastHELLO WORLD
依赖外部 Task
task taskX(dependsOn: ':core:hello') << { println "taskX"}
运行
gradle -q taskX
或者
task taskY << { println "taskY"}taskY.dependsOn { tasks.findAll { task -> task.name.startsWith("hello") }}
运行
gradle -q taskY
指定 Task 执行顺序
task taskTwo<<{ println "taskTwo"}task taskOne<<{ println "taskOne"}taskTwo.mustRunAfter taskOne
运行
gradle -q taskTwo taskOne
禁用指定 Task
task taskThree<<{ println "taskThree"}taskThree.enabled=false
运行
gradle -q taskThree
0 0
- Step into Gradle - 02 - Project 和 Task
- Step into Gradle - 03 - Properties
- Step into Gradle - 04 - 依赖
- Step into Gradle - 05 - 仓库
- Gradle 中的 Task 跟 Project
- Step into Gradle - 01 - 基本使用
- Step into Gradle - 06 - 文件管理
- How to import Gradle project into eclipse
- How to import Gradle project into eclipse .
- Gradle sync failed: Another 'refresh project' task
- Step into MongoDB - 02 - 数据类型
- Step into Scala - 02 - 数据类型
- Step into Kotlin - 02 - 数据类型
- step into step out
- Step Into和Step Over,Step Out有什么区别呢?
- 2 gradle 构建 和运行task
- Gradle for Android-创建task和plugin
- step into step over step return区别
- 集成第三方JavaScript库
- (C语言-数据结构与算法)还原二叉树
- 实战-----使用crond 在linux中定时执行任务
- 按钮
- 开始刷leetcode day31:Single Number
- Step into Gradle - 02 - Project 和 Task
- 不允许直接修改对象的结构体属性的成员
- Java中的访问权限的理解
- VSS使用手册
- Windows 10 免费升级版开始预订了……
- crond不执行原因分析【必须检查的几个地方,详见文章内容】
- frame\center\bounds的区别
- 黑马程序员java学习笔记——内部类、异常、包
- oracle存储过程中is和as区别