专注于快乐的事情

gradle入门

gradle入门

gradle跟ivy/maven一样,是一种依赖管理/自动化构建工具。但是跟ivy/maven不一样,它并没有使用xml语言,而是采用了Groovy语言。更加强大的是,gradle完全兼容maven和ivy。

gradle跟maven一样,也有一个配置文件,maven里面是叫pom.xml,而在gradle中是叫build.gradle。

#目录结构
在一个空目录下,执行gradle init,假设gradle已经安装,并且配置到了环境变量中。

执行tree,可以看到如下目录。

├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle

  • gradle.properties
    它是一个配置文件,里面可以定义一些常量供build.gradle使用,比如可以配置签名相关信息如keystore位置,密码,keyalias等。

  • settings.gradle

这个文件是用来配置多模块的,比如你的项目有两个模块module-a,module-b,那么你就需要在这个文件中进行配置,格式如下:
include ‘:module-a’,’:module-b’

  • gradle文件夹

这里面有两个文件,gradle-wrapper.jar和gradle-wrapper.properties,它们就是gradle wrapper。

  • gradlew和gradlew.bat
    这分别是linux下的shell脚本和windows下的批处理文件,它们的作用是根据gradle-wrapper.properties文件中的distributionUrl下载对应的gradle版本。这样就可以保证在不同的环境下构建时都是使用的统一版本的gradle,即使该环境没有安装gradle也可以,因为gradle wrapper会自动下载对应的gradle版本。

gradlew的用法跟gradle一模一样,比如执行构建gradle build命令,你可以用gradlew build。gradlew即gradle wrapper的缩写。

配置说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
//构建过程依赖的仓库
repositories {
jcenter()
}
//构建过程需要依赖的库
dependencies {
//下面声明的是gradle插件的版本
classpath 'com.android.tools.build:gradle:1.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
//这里面配置整个项目依赖的仓库,这样每个module就不用配置仓库了
allprojects {
repositories {
jcenter()
}
}

repositories,构建过程依赖的仓库

dependencies,构建过程需要依赖的库

为什么仓库repositories需要声明两次,这其实是由于它们作用不同,buildscript中的仓库是gradle脚本自身需要的资源,而allprojects下的仓库是项目所有模块需要的资源。

gradle仓库:

gradle有三种仓库,maven仓库,ivy仓库以及flat本地仓库。声明方式如下:

maven{
url “…”
}
ivy{
url “…”
}
flatDir{
dirs ‘xxx’
}
有一些仓库提供了别名,可直接使用:

repositories{
mavenCentral()
jcenter()
mavenLocal()
}

gradle任务

gradle中有一个核心概念叫任务,跟maven中的插件目标类似。
gradle的android插件提供了四个顶级任务

assemble 构建项目输出
check 运行检测和测试任务
build 运行assemble和check
clean 清理输出任务
gradlew assemble
相当于执行
gradlew assembleDebug
gradlew assembleRelease

检查依赖报告

gradle dependencies

常见问题

下载很慢

将下载好的gradle-2.14-bin.zip放着相应的目录下
/Users/ww/.gradle/wrapper/dists/gradle-2.14-bin/76oc0mnc3ieqtsukq90mp0rxk

参考

http://www.open-open.com/lib/view/open1431391503529.html

评论系统未开启,无法评论!