Gradle介绍:
Gradle 是以 Groovy 语言为基础,面向 Java 应用为主。基于 DSL(Domain Specific Language) 语法
的自动化构建工具。
Gradle 集合了 Ant 的灵活性和强大功能,同时也集合了 Maven 的依赖管理和约定,从而创造了一个更有效的构建方式。凭借 Groovy 的 DSL 和创新打包方式, Gradle 提供了一个可声明的方式,并在合理默认值的基础上描述所有类型的构建。 Gradle 目前已被选作许多开源项目的构建系统。
一、基本的项目设置
一个 Gradle 项目通过一个在项目根目录中的 build.gradle 文件来描述它的构建。
简单的Build 文件
最简单的 Android 应用中的 build.gradle 都会包含以下几个配置:
Project 根目录的 build.gradle :
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
Module 中的 build.gradle :
apply plugin: 'com.android.application'
android {
compileSdkVersion 23 buildToolsVersion "23.0.3"
...
}
- buildscript { … } 配置了编译时的代码驱动. 这种情况下,它声明所使用的是 jCenter 仓库。还有一个声明所依赖的在 Maven 文件的路径。这里声明的包含了 Android 插件所使用的1.5.0版本的 Gradle . 注意:这只会影响 build 中运行的代码,不是项目中。项目中需要声明它自己所需要仓库和依赖关系。
- apply plugin : com.android.application ,声明使用 com.androdi.application 插件。这是构建 Android 应用所需要的插件。
- android{…} 配置了所有 Android 构建时的参数。默认情况下,只有编译的目标版本以及编译工具的版本是需要的。
重要: 这里只能使用 com.android.application 插件。如果使用 java 插件将会报错。
1. 目录结构
module/src/main 下的目录结构,因为有时候很多人把 so 放到 libs 目录就会报错:
- java/
- res/
- AndroidManifest.xml
- assets/
- aidl/
- jniLibs/
- jni/
- rs/
2.配置目录结构
如果项目的结构不标准的时候,可能就需要去配置它。 Android 插件使用了相似的语法,但是因为它有自己的 sourceSets ,所以要在 android 代码块中进行配置。下面就是一个从 Eclipse 的老项目结构中配置主要代码并且将 androidTest 的 sourceSet 设置给 tests 目录的例子:
android {
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = [