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 还没读完......