Gradle

作者: dreamkid | 来源:发表于2020-07-07 16:29 被阅读0次

    Gradle是什么

    Gradle是基于jvm的开源构建工具,使用脚本语言groovy或kotlin开发,是android官方构建工具.

    1.Gradle环境搭建

    1.1下载Gradle,下载地址https://gradle.org/releases/
    1.2解压并配置环境变量,测试环境是否配置成功,命令行输入gradle -v

    2.Gradle的Helloworld

    在某个目录下创建build.gradle文件,build.gradle文件是Gradle默认的脚本执行文件,命令行运行Gradle命令时会在当前目录下查找build.gradle文件并执行构建

    task hello {
         doLast{
            println("hello world")
        }
    }
    

    task任务和action动作是Gradle的重要元素.task是Gradle可执行最小原子性操作.doLast是最后执行的action,当任务执行完后会回调doLast

    3.Gradle的任务

    gradle的任务包括创建任务,任务依赖,动态创建任务,任务分组和多任务执行

    3.1创建任务
    创建任务包括直接声明任务,任务名称创建任务,任务名+配置创建任务,TaskContainer的create方法创建任务
    3.1.1 直接声明任务

    task hello {
         doLast{
            println("hello world")
        }
    }
    

    3.1.2 任务名创建任务

    def Task hello = task(hello)
    hello.doLast{
        println("hello world")
    }
    

    3.1.3 任务名+配置创建任务

    def Task hello = task(hello,group:BasePlugin.BUILD_GROUP)
    hello.doLast{
        println("hello world")
    }
    

    3.1.4 TaskContainer的create方法创建任务

    tasks.create(name:'hello'){
        doLast{
            println("hello world")
        }
    }
    

    3.2任务依赖
    一个任务可以依赖另一个任务,被依赖的任务先执行

    task hello {
        doLast{
            println("hello")
        }
    }
    
    task go(dependsOn:hello){
        doLast{
            println("go")
        }
    }
    

    3.3动态创建任务
    动态指定任务名称

    3.times{number->
        task "task$number"{
            doLast{
                println("task$number")
            }
        }
    }
    

    这里是调用Groovy在java.lang.Number中定义的拓展方法循环创建任务,任务名称动态指定.

    3.4任务分组
    任务分组是对任务进行分组,比如在android studio中gradle可视化页面可以看到分组列表build,help等,默认不指定分组的任务在other分组下

    task hello {
        group="build"
        description="task hello"
        doLast{
            println("任务分组$group")
            println("任务描述$description")
        }
    }
    

    创建任务指定任务分组和任务描述

    3.5多任务执行
    命令行一个任务只能执行一次,执行多个任务以空格分割

    task task1{
        doLast{
            println("task1")
        }
    }
    
    task task2{
        doLast{
            println("task2")
        }
    }
    

    在命令行执行

    gradle task1 task2
    

    感谢:
    http://liuwangshu.cn/application/gradle/2-primer.html

    相关文章

      网友评论

          本文标题:Gradle

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