美文网首页
Android Studio 中的 Gradle 简记

Android Studio 中的 Gradle 简记

作者: 几千里也 | 来源:发表于2017-02-16 14:12 被阅读27次

    Gradle 是一个基于 Groovy 语言的构建系统,不但代码精简,而且能完成复杂构建任务。。

    Gradle helps teams build, automate and deliver better software, faster.

    AndroidStudio 里包含了 Gradle:

    ~/android-studio-2.0/gradle/gradle-2.14.1/bin$ ./gradle --version
    
    ------------------------------------------------------------
    Gradle 2.14.1
    ------------------------------------------------------------
    
    Build time:   2016-07-18 06:38:37 UTC
    Revision:     d9e2113d9fb05a5caabba61798bdb8dfdca83719
    
    Groovy:       2.4.4
    Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
    JVM:          1.8.0_121 (Oracle Corporation 25.121-b13)
    OS:           Linux 3.13.0-108-generic amd64
    
    

    Gradle 基本概念

    project

    project 通常指一个项目。

    task

    task 指构建过程中的任务。

    Gradle 一次可以构建 1 到 n 个 project,每个 project 有 1 到 n 个 task 。

    老规矩,先来个 Hello World 看看。

    ~/Downloads/gradle-3.3/samples/userguide/tutorial/hello$ alias gradle=~/Downloads/gradle-3.3/bin/gradle
    ~/Downloads/gradle-3.3/samples/userguide/tutorial/hello$ gradle -q hello
    Hello world!
    
    

    下面我们再看个有 task 依赖关系的例子:

    defaultTasks 'taskX'
    
    task taskX(dependsOn: 'taskY') {
        doLast {
            println 'taskX'
        }
    }
    
    task taskY {
        doLast {
            println 'taskY'
        }
    }
    

    执行效果

    $ gradle -q 
    taskY
    taskX
    

    当然也可以单独执行某个 task :

    defaultTasks 'clean', 'run'
    
    task clean {
        doLast {
            println 'Default Cleaning!'
        }
    }
    
    task run {
        doLast {
            println 'Default Running!'
        }
    }
    
    task other {
        doLast {
            println "I'm not a default task!"
        }
    }
    

    执行效果

    $ gradle -q 
    Default Cleaning!
    Default Running!
    
    $ gradle -q other
    I'm not a default task!
    

    外部依赖

        repositories {
            jcenter()
        }
    
    dependencies {
     // compile group: 'com.android.support', name: 'appcompat-v7', version: '23.2.1'
        compile 'com.android.support:appcompat-v7:23.2.1'
    
    // compile group: 'com.android.support', name: 'design', version: '23.2.1'
        compile 'com.android.support:design:23.2.1'
    
    // 引用一个外部依赖需要指定使用的 group, name 和 version 属性,三者缺一不可。
    }
    

    本地依赖

    dependencies {
        compile files('dir/file.jar')
        compile fileTree(dir: 'libs', include: '*.jar')
    }
    

    项目依赖

    一个项目可能由多个子项目构成,在 Gradle 中使用文件 settings.gradle 定义当前项目的子项目。

    include ':app', ':themePlugin', ':themepackage'
    
    // include 'sub-project1', 'sub-project2', 'sub-project3'
    // 如果 sub-project1 依赖 sub-project2,那么在 sub-project1 的 build.gradle 中加入以下配置
    // dependencies {
    //  compile project(':sub-project2')
    // }
    

    待续

    先记这么多吧,Android Studio 文档Gradle Plugin User Guide 还没读完......

    相关文章

      网友评论

          本文标题:Android Studio 中的 Gradle 简记

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