《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}"
    }
}
复制代码

结果

posted @   嘉禾世兴  阅读(194)  评论(0编辑  收藏  举报
编辑推荐:
· 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超链接
点击右上角即可分享
微信分享提示