《Gradle权威指南》--Gradle构建脚本基础
No1:
设置文件默认名是setting.gradle,放在根目录下,大多数作用都是为了配置子工程
No2:
一个Project包含很多个Task。Task就是一个操作,一个原子性的操作。其实它是Project对象的一个函数
No3:
task customTask1{ doFirst{ println 'customTask1:doFirst' } doLast{ println 'customTask1:doLast' } } tasks.create("customTask2"){ doFirst{ println 'customTask2:doFirst' } doLast{ println 'customTask2:doLast' } }
结果
说明这两个任务是一样的
No4:
依赖:用于控制执行顺序
task ex35Hello<<{ println 'hello' } task ex35Main(dependsOn:ex35Hello){ doLast{ println 'main' } }
结果
No5:
多重依赖
task ex35Hello<<{ println 'hello' } task ex35World<<{ println 'world' } task ex35MultiTask{ dependsOn ex35Hello,ex35World doLast{ print 'multiTask' } }
结果
注:方法名后面的<<可以不要
No6:
交互
task ex36Hello<<{ println 'dowLast1' } ex36Hello.doFirst{ println 'dowFirst' } ex36Hello.doLast{ println project.hasProperty('ex36Hello') println 'dowLast2' }
结果
Project在创建该任务的时候,同时把该任务对应的任务名注册为Project的一个属性,类型是Task
project.hasProperty('ex36Hello')用来判断是否有这个属性
No7:
自定义属性:ext
//自定义一个Project的属性 ext.age = 18 //通过代码块同时自定义多个属性 ext{ phone = 13342342 address = '' } task ex37CustomProperty<<{ println "年龄是:${age}" println "电话是:${phone}" println "地址是:${address}" }
结果
No8:
SourceSet
apply plugin :"java" ext.age = 18 ext{ phone=13123 address='' } sourceSets.all{ ext.resourcesDir=null } sourceSets{ main{ resourcesDir='main/res' } test{ resourcesDir='test/res' } } task ex38CustomProperty<<{ println "年龄是:${age}" println "电话是:${phone}" println "地址是:${address}" sourceSets.each{ println "${it.name}的resourceDir是:${it.resourcesDir}" } }
结果
分类:
Gradle
标签:
gradle权威指南
, Gradle构建脚本基础
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2017-03-16 RecyclerView 和 ListView 使用对比分析
2017-03-16 apk瘦身
2016-03-16 Android超链接