gradlejava
项目的构建工具,基于groovy语言。主要用于管理依赖包。android
as中通常将gradle下载在C:\Documents and Settings<用户名>.gradle\wrapper\dists 目录/gradle-x.xx-all android-studio
关于build.gradleapp
下面就以个人开源项目 9GAG 来详细讲解下和Gradle相关的知识, 和Gradle相关的几个文件通常有以下几个maven
大致有三种(请先了解module和project的区别):工具
1. 9GAG/app/build.gradlegradle
2. 9GAG/extras/ShimmerAndroid/build.gradleui
每个Module都须要有一个gradle配置文件,语法都是同样,惟一不一样的是开头声明的是 apply plugin: ‘com.android.library’spa
3. 这个文件是整个项目的gradle基础配置文件插件
build.gradle内容详解
(1)9GAG/app/build.gradle
// 声明是Android程序
apply plugin: 'com.android.application'
android {
// 编译SDK的版本
compileSdkVersion 21
// build tools的版本,须要本地有该版本,手动更改为你本地已有的版本或者打开 SDK Manager 去下载对应版本均可以。
buildToolsVersion "21.1.1"
defaultConfig {
// 应用的包名
applicationId "me.storm.ninegag"
minSdkVersion 14
targetSdkVersion 21
versionCode 1
versionName "1.0.0"
}
// java版本
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
buildTypes {
debug {
// debug模式
}
release {
// 是否进行混淆
minifyEnabled false
// 混淆文件的位置
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
// 移除lint检查的error
lintOptions {
abortOnError false
}
}
dependencies {
// 编译libs目录下的全部jar包
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:support-v4:21.0.2'
compile 'com.etsy.android.grid:library:1.0.5'
compile 'com.alexvasilkov:foldable-layout:1.0.1'
// 编译extras目录下的ShimmerAndroid模块
compile project(':extras:ShimmerAndroid')
}
(2)9GAG/extras/ShimmerAndroid/build.gradle
每个Module都须要有一个gradle配置文件,语法都是同样,惟一不一样的是开头声明的是 apply plugin: ‘com.android.library’
其余gradle相关文件内容解析
(1) gradle-wrapper.properties
#Thu Dec 18 16:02:24 CST 2014
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip
(2)9GAG/build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter() 声明仓库的源,这里指明的是jcenter(), 以前版本则是mavenCentral(), jcenter但是一个新的中央远程仓库,兼容maven中心仓库。
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0' 声明了gradle插件的版本,和gradle版本有关。
}
}
allprojects {
repositories {
jcenter()
}
}
(3)9GAG/settings.gradle
include ':app', ':extras:ShimmerAndroid'
文件中的 app, extras:ShimmerAndroid 都是module,若是还有其余module都须要按照如上格式加进去。
参考
http://stormzhang.com/devtools/2014/12/18/android-studio-tutorial4/