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/