美文网首页
Hello Gradle 任务

Hello Gradle 任务

作者: TunaIsBack | 来源:发表于2020-04-06 21:49 被阅读0次
  • 多种方式创建任务
//第一种是直接已一个任务名字创建任务

def Task exCreateTask=task(exCreateTask)
exCreateTask.doLast{
    println "创建方法原型为:Task task(String name) thorows InvalidUserDataException"
}


// 第二种以一个任务名字+一个对应该任务配置的Map对象来创建任务

def Task exCreateTask=task(exCreateTask,group:BasePlugin.BUILD_GROUP)
exCreateTask.doLast{
    println "创建方法原型为:Task task(String name,Map<String,?> args) thorows InvalidUserDataException"

    println "任务分组:${exCreateTask.group}"
}
// 第三种以一个任务名字+闭包配置的方式

task exCreateTask{
    description '演示任务创建'

    doLast{
        println "创建原型为:Task task(String name,Closure configureClosure)"
        println "任务描述:${description}"
    }
}


tasks.create('exCreateTask2'){
    description '演示任务创建'

    doLast{
        println "创建原型为:Task task(String name,Closure configureClosure)"
        println "任务描述:${description}"
    }
}

  • 多种方式访问任务
task exCreateTask{
    description '演示任务创建'

    doLast{
        println "创建原型为:Task task(String name,Closure configureClosure)"
        println "任务描述:${description}"
    }
}



tasks['exCreateTask'].doLast{
    println tasks.findByPath(':gradle-test:exCreateTask')
    // println tasks.getByPath(':gradle-test:exCreateTask')

    println tasks.findByName('exCreateTask')
    println tasks.getByName('exCreateTask')
}


任务分组和描述

def  Task myTask=task exGroupTask
myTask.group=BasePlugin.BUILD_GROUP
myTask.description='这是一个构建的引导任务'
myTask.doLast{
    println "group:${group} description:${description}"
}

任务排序

task task1{
    doLast{
    println 'task1 run...'
    }
}

task task2{
   doLast{
    println 'task2 run...'
   }
}

//task1必须在task2执行之后执行
task1.mustRunAfter(task2)

//task1应该在task2执行之后执行
//task1.shouldRunAfter task2

任务的启用和禁用

task myTask{
    doLast{
        println 'disenabledTask'
    }
}

myTask.enabled=false

任务的onlyIf断言

断言就是一个条件表达式,Task有一个onlyIf方法,它接受一个闭包作为参数,如果该闭包返回true则该任务执行,否则跳过。

final String BUILD_APP_ALL="all"
final String BUILD_APPS_SHOUFA="shoufa"
final String BUILD_APPS_EXCLUDE_SHOUFA="exclude_shoufa"


task exQQRelease{
    doLast{
        println "打应用宝的包"
    }
}

task exBaiduRelease{
    doLast{
        println "打百度的包"
    }
}


task exHuaweiRelease{
    doLast{
        println "打华为的包"
    }
}


task exXiaomiRelease{
    doLast{
        println "打小米的包"
    }
}

task build{
    group BasePlugin.BUILD_GROUP
    description "打渠道包"
}

build.dependsOn exQQRelease,exBaiduRelease,exHuaweiRelease,exXiaomiRelease


exQQRelease.onlyIf{
    def execute=false

    if(project.hasProperty("build_apps")){
        Object buildApps=project.property("build_apps")
        if(BUILD_APPS_SHOUFA.equals(buildApps)){
            execute=true
        }
    }else{
        execute=true
    }

    execute
}


exBaiduRelease.onlyIf{
    def execute=false

    if(project.hasProperty("build_apps")){
        Object buildApps=project.property("build_apps")
        if(BUILD_APPS_SHOUFA.equals(buildApps)){
            execute=true
        }
    }else{
        execute=true
    }

    execute
}


exHuaweiRelease.onlyIf{
    def execute=false

    if(project.hasProperty("build_apps")){
        Object buildApps=project.property("build_apps")
        if(BUILD_APPS_EXCLUDE_SHOUFA.equals(buildApps)){
            execute=true
        }
    }else{
        execute=true
    }

    execute
}

exXiaomiRelease.onlyIf{
    def execute=false

    if(project.hasProperty("build_apps")){
        Object buildApps=project.property("build_apps")
        if(BUILD_APPS_EXCLUDE_SHOUFA.equals(buildApps)){
            execute=true
        }
    }else{
        execute=true
    }

    execute
}



  • 打所有渠道包

命令行中-P的意思为Project指定K-V格式的属性键值对,格式为-PK=V


  • 打首发包


  • 打非首发包


相关文章

  • Hello Gradle 任务

    多种方式创建任务 多种方式访问任务 任务分组和描述 任务排序 任务的启用和禁用 任务的onlyIf断言 断言就是一...

  • Hello Gradle

    关键词 Android Studio: 基于Idea开发 Gradle: 强大的系统构建工具,它的DSL(Doma...

  • 【Gradle】Gradle任务

    个人博客:http://www.milovetingting.cn Gradle任务 多种方式创建任务 1、直接以...

  • Gradle 编码导致的问题

    现象 1、build.gradle 内容 task hello { doLast { println 'Hello...

  • gradle task简单使用方法

    gradle命令 语法:gradle task名称gradle build:执行build任务gradle -m ...

  • Hello Gradle插件

    插件的作用 添加任务到项目中,帮你完成一些事情,比如测试、编译、打包 添加依赖配置到你到项目中,比如我们在编译的时...

  • Gradle任务

    1.多种方式创建任务: 第一种:直接以一个任务名字创建任务的方式 def Task ex6=task(ex6) e...

  • 5.2、Android Studio 从命令行构建您的应用

    文章摘要1、 Gradle 任务列表2、构建调式APK 英文文献 一、Gradle 任务 您可以使用 Gradle...

  • Android 代码检查自动化

    检查工具:Lint,FindBugs任务配置:jenKins任务配置gradle gradle配置 配置gradl...

  • Gradle 任务 -- 任务规则

    ----《Android Gradle 权威指南》学习笔记 总目录:Gradle 学习系列 -- 目录[https...

网友评论

      本文标题:Hello Gradle 任务

      本文链接:https://www.haomeiwen.com/subject/wyibphtx.html