gradle学习

Posted rainymemory

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gradle学习相关的知识,希望对你有一定的参考价值。

projects和tasks

任何一个Gradle构建都是由一个或者多个project组成
每个project都有多个tasks构成
每个task都代表了构建执行过程中的一个原子性操作.例如 编译 打包

构建一个gradle应用

通过在命令行运行gradle命令来执行构建,gradle命令会从当前目录下寻找build.gradle文件来进行构建。
  • 编写build.gradle
   task hello {
     doLast {
         println ‘Hello world!‘
     }
   }
  • 快速定义任务
   task hello << {
    println ‘Hello World!‘
   }
  • 采用groovy语法编写task
    task hello << {
        String str = "mY_nAmE"
        println ‘orginal: ‘+ str
        println ‘Upper case: ‘ + str.toUpperCase()
    }
  • 任务依赖 (添加依赖 task 也可以不必首先声明被依赖的 task)
    task hello << {
        println ‘hello world‘
    }

    task intro(dependsOn hello) << {
        println "I‘m Gradle"
    }
  • 动态任务
    4.times{counter ->
        task "task$counter" <<{
            println "I‘m task number $counter"
        }
    }
  • 任务操纵
    4.times { counter ->
        task "task$counter" << {
            println "I‘m task number $counter"
        }
    }
    task0.dependsOn task2, task3
  • 增加自定义属性
    task myTask {
        ext.myProperty = "myValue"
    }
    
    task printTaskProperties << {
        println myTask.myProperty
    }
  • 定义默认任务
    defaultTasks ‘clean‘, ‘run‘
    task clean << {
        println ‘Default Cleaning!‘
    }
    task run << {
        println ‘Default Running!‘
    }
    task other << {
        println "I‘m not a default task!"
    }
  • 依赖任务的不同输出
    task distribution << {
        println "We build the zip with version=$version"
    }
    task release(dependsOn: ‘distribution‘) << {
        println ‘We release now‘
    }
    gradle.taskGraph.whenReady {taskGraph ->
        if (taskGraph.hasTask(release)) {
            version = ‘1.0‘
        } else {
            version = ‘1.0-SNAPSHOT‘
        }
    }

以上是关于gradle学习的主要内容,如果未能解决你的问题,请参考以下文章

如何使用模块化代码片段中的LeakCanary检测内存泄漏?

如何添加jcenter仓库 gradle依赖

IOS开发-OC学习-常用功能代码片段整理

java SpringRetry学习的代码片段

python 机器学习有用的代码片段

如何防止Android studio格式化build.gradle