Gradle是啥?
gradle是一個基于Apache Ant和Apache Maven概念的項目自動化建構(gòu)工具。
所謂的構(gòu)建過程就是:編譯,測試,依賴管理,打包,部署。以前我們開發(fā)是手動導(dǎo)入jar包的,類似于面向過程,一步一步來,缺什么包就導(dǎo)什么包,很麻煩,容易出錯,jar包版本還不統(tǒng)一,需要關(guān)心jar包與jar包之間的依賴。通過采用gradle的構(gòu)建方式,只需通過complie xxxxx引入一個jar包,然后這個jar包所依賴的其他jar包gradle會自動幫引入,無需關(guān)心jar包與jar包之間的依賴,在什么地方以什么形式引入外部jar包,都委托給gradle管理了,體現(xiàn)了面象對象的思想,無需關(guān)心內(nèi)部實現(xiàn)過程,直接引入就可。(注意Gradle不是一種編程語言,它不能幫你實現(xiàn)軟件中的任何實際功能)
自動化構(gòu)建工具有哪些?
Ant 2000年誕生,主要是編譯代碼,測試代碼。
Maven? 2007年誕生,主要是編譯測試,依賴管理。
Gradle? 2012年誕生 主要是是編譯測試,依賴管理,DSL自定義擴(kuò)展任務(wù)。
Android Studio中的默認(rèn)工具是Gradle
Android studio的默認(rèn)插件是Gradle,或許是因為Gradle編譯速度比Maven 快很多,而且Gradle完全兼容kotlin語言。當(dāng)我們新建一個android 項目,gradle已經(jīng)默認(rèn)配置好了,打開gradle-wrapper.properties文件,查看配置信息:

可以看到distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip說明默認(rèn)使用的是gradle 5.1.1 的版本,當(dāng)然可以改成我們本地有的版本,distributionUrl=file:///+gradle的本地路徑,例如:distributionUrl=file:///c:/tools/gradle-5.6.4.zip就可以了。
android gradle插件詳解地址:https://developer.android.com/studio/releases/gradle-plugin?hl=zh-cn
build.gradle
build.gradle文件分別在項目目錄下和對應(yīng)module目錄都有存在。
下圖是項目目錄下的build.gradle:

接下來是module目錄的build.gradle:

module目錄下的的build.gradle里的dependencies {......}里面的依賴,是單單一個模塊本身所需的依賴!是程序運行的編譯依賴!
在External Libraries文件夾下,如圖

可以看到項目添加的所有依賴,包括子依賴都會顯示在里面。除build.gradle里的dependencies {......}里面添加的依賴之外的依賴都是子依賴。子依賴都是gradle智能自動的幫你添加的,它檢查到你主動添加的依賴,又依賴于其他依賴,就會幫你加上。另外當(dāng)gradle檢查到依賴間有沖突時,出現(xiàn)依賴間多次引用相同jar包(只能將庫里的源碼打進(jìn)去,而資源什么的不能打進(jìn)去)、aar包(自動的將資源文件和源碼一起打進(jìn)去,不用擔(dān)心資源缺失的問題),它只會默認(rèn)選擇版本較高的添加,不會重復(fù)添加。這就是gradle出色的依賴管理。
今天的分享結(jié)束了,再見~