新的構建工具!Gradle的使用教程
來自: http://xunhou.me/gradle-1/
Gradle
Gradle是以Groovy語言為基礎,面向java應用為住。基于DSL(領域特定語言)語法的自動怕你規劃構建工具。
gradle對多工程的構建支持很出色,工程依賴是gradle的第一公民。
gradle支持局部構建。
支持多方式以來管理:包括從maven遠程倉庫、nexus私服、ivy倉庫以及本地文件系統的jars或者dirs
gradle是第一個構建繼承工具,與ant、maven、ivy有良好的相關性
輕松遷移:gradle適用于任何結構的工程,你可以在同一個開發平臺平行構建原工程和gradle工程。通常要求寫相關測試,以保證開發的插件的相似醒呢,這種遷移可以減少破壞性,盡可能的可靠。這也是構建的最佳實踐
gradle的整體設計是以作為一種語言為導向的,而非成為一個閹割死板的框架。
</div>
Gradle構建Android程序
如果你是初次使用AndroidStudio,那么安裝完成后將會讓你選擇配置離線的gradle文件目錄還是重新從官網上下載gradle,在你國這網絡的情況下,我們可以采用跳墻的方法來下載。(在AndroidStudio1.02之后就可以選擇離線的gradle了,不需要每次第一次構建Android項目的時候都得下載gradle)。
下載好之后配置gradle環境變量,命令行輸入gradle -v,查看成功配置與否。
在Gradle構建的Android項目中,與gradle相關的目錄有以下幾個:
- build.gradle 這個文件是app文件gradle配置文件,也可以算是整個項目最主要的配置文件,下面是內容:
//聲明是Android程序 apply plugin: 'com.android.application'
android { //編譯SDK的版本 compileSdkVersion 21 build tools的版本 buildToolsVersion "21.1.2"
defaultConfig {
//包名
applicationId "com.bqs.wetime.fruits"
minSdkVersion 14
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
//設置混淆
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
// 依賴聲明 dependencies { //gradle可以直接拷貝jar到libs目錄下,亦可用maven的方式來導入 compile 'com.squareup.retrofit:retrofit:1.9.0' compile 'com.jakewharton:butterknife:6.1.0' compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3' compile 'com.squareup:otto:+' compile 'com.android.support:appcompat-v7:21.0.3' compile 'com.android.support:recyclerview-v7:21.0.3' compile 'com.squareup.okhttp:okhttp:2.2.0' compile 'com.google.code.gson:gson:2.3.1+' compile 'de.greenrobot:java-common:2.0.0' compile 'de.greenrobot:greendao:1.3.7' compile 'com.github.traex.rippleeffect:library:1.2.3' compile files('libs/rebound-0.3.7.jar') compile files('libs/co.snappydb.jar') compile files('libs/kryo-2.23-SNAPSHOT.jar') compile project(':CoconutUtil') compile 'com.android.support:recyclerview-v7:21.0.3' }</pre>
- gradle文件夾
- settings.gradle
</ul>
依賴聲明
compile [group]:[name]:[version]
這是一種快捷的依賴方式
compile files
對本地文件夾下的jar進行依賴
compile project
如果在這個項目中存在其他的module,就可以用這種方法。相當于eclipse中選中isLibrary選項框。
build.gradle
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.0.0'// NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files }
}
allprojects { repositories { jcenter() } }</pre>
jcenter是Gradle1.7之后采用的一種新的中央遠程倉庫,目前Github經常看到很多開源庫將其上傳至Jcenter倉庫中,使用起來非常方便而且易于維護,尤其是在Android Sudio中,只需要幾行代碼的配置就可以上傳上去。
Gradle常用命令
-
./gradlew -v 版本號
-
./gradlew clean 清除9GAG/app目錄下的build文件夾
-
./gradlew build 檢查依賴并編譯打包
這里注意的是 ./gradlew build 命令把debug、release環境的包都打出來,如果正式發布只需要打Release的包,該怎么辦呢,下面介紹一個很有用的命令 assemble, 如
-
./gradlew assembleDebug 編譯并打Debug包
-
./gradlew assembleRelease 編譯并打Release的包
除此之外,assemble還可以和productFlavors結合使用,具體在下一篇多渠道打包進一步解釋。
-
./gradlew installRelease Release模式打包并安裝
-
./gradlew uninstallRelease 卸載Release模式包
本文參考于:
</div>