Android Studio 中的 Gradle 简记

2017-02-16  本文已影响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 还没读完......

上一篇下一篇

猜你喜欢

热点阅读