gradle跟ant/maven同樣,是一種依賴管理/自動化構建工具。可是跟ant/maven不同,它並無使用xml語言,而是採用了Groovy語言,這使得它更加簡潔、靈活,更增強大的是,gradle徹底兼容maven和ivy。html
首先明確gradle跟maven同樣,也有一個配置文件,maven裏面是叫pom.xml,而在gradle中是叫build.gradle。Android Studio中的android項目一般至少包含兩個build.gradle文件,一個是project範圍的,另外一個是module範圍的,因爲一個project能夠有多個module,因此每一個module下都會對應一個build.gradle。linux
一些與gradle相關的文件:
android
從名字上就知道它是一個配置文件,沒錯,這裏面能夠定義一些常量供build.gradle使用,好比能夠配置簽名相關信息如keystore位置,密碼,keyalias等。shell
這個文件是用來配置多模塊的,好比你的項目有兩個模塊module-a,module-b,那麼你就須要在這個文件中進行配置,格式以下。windows
include ':module-a',':module-b'app
這裏面有兩個文件,gradle-wrapper.jar和gradle-wrapper.properties,它們就是gradle wrapper。gradle項目都會有,你能夠經過命令gradle init來建立它們(前提是本地安裝了gradle而且配置到了環境變量中)。maven
這分別是linux下的shell腳本和windows下的批處理文件,它們的做用是根據gradle-wrapper.properties文件中的distributionUrl下載對應的gradle版本。這樣就能夠保證在不一樣的環境下構建時都是使用的統一版本的gradle,即便該環境沒有安裝gradle也能夠,由於gradle wrapper會自動下載對應的gradle版本。
gradlew的用法跟gradle如出一轍,好比執行構建gradle build命令,你能夠用gradlew build。gradlew即gradle wrapper的縮寫。工具
gradle有三種倉庫,maven倉庫,ivy倉庫以及flat本地倉庫。聲明方式以下:測試
maven{
url "..."
}
ivy{
url "..."
}
flatDir{
dirs 'xxx'
}
有一些倉庫提供了別名,可直接使用:gradle
repositories{
mavenCentral()
jcenter()
mavenLocal()
}
gradle中有一個核心概念叫任務,跟maven中的插件目標相似。
gradle的android插件提供了四個頂級任務
參考: