Gradle是一個(gè)框架坚洽,它定義了一套自己的游戲規(guī)則。
首先介紹Gradle中的基本組件:
Gradle中每一個(gè)待編譯的工程都叫做Project鞍盗。每一個(gè)Project在構(gòu)建的時(shí)候都會(huì)包含一些列的Task。Android APK的編譯可能包含:Java源碼編譯Task橡疼、資源編譯Task庐舟、JNI編譯Task、Lint檢查T(mén)ask历帚、打包生成APK的Task杠娱、簽名Task等等。
一個(gè)Project到底包含多少個(gè)Task摊求,其實(shí)是有編譯腳本指定的插件決定的。而插件是什么呢睹栖?插件就是用來(lái)定義Task的茧痕,并具體執(zhí)行這些Task的東西。
Gradle是一個(gè)框架踪旷,作為一個(gè)框架,它負(fù)責(zé)定義流程和規(guī)則舀患。而具體的編譯工作則是通過(guò)插件的方式完成的气破。比如編譯Java有Java插件,編譯Groovy有Groovy插件堵幽,編譯Android APP有Android APP插件,編譯Android Library有Android Library插件努咐。
從而我們可以知道殴胧,Gradle中每一個(gè)待編譯的工程都是一個(gè)Project佩迟,一個(gè)吧具體的編譯過(guò)程是由一個(gè)一個(gè)的Task來(lái)定義和執(zhí)行的竿屹。
根據(jù)Gradle的要求,每一個(gè)Project在其根目錄下都需要有一個(gè)build.gradle拱燃。build.gradle文件就是該P(yáng)roject的編譯腳本。
在Gradle中有Multi-Projects Build召嘶。
在Android工程中對(duì)應(yīng)的是settings.gradle哮缺。這個(gè)文件很重要,必須是setting.gradle尝苇。
總結(jié):怎么去理解一個(gè)Project
- 對(duì)于每一個(gè)Project都必須設(shè)置一個(gè)build.gradle文件。我們也可以理解為格仲,一個(gè)build.gradle相當(dāng)于一個(gè)Project
- 對(duì)于muti-projects build诵冒,需要在根目錄下也放一個(gè)build.gradle 和settings.gradle
- 一個(gè)Project是由若干個(gè)tasks組成的,并且至少大于一個(gè)task侮东,執(zhí)行g(shù)radle xxx的時(shí)候其實(shí)是執(zhí)行一個(gè)任務(wù)豹芯。
- 具體的工作和不同的插件有關(guān)系。編譯Java要使用Java插件铁蹈,編譯Android APP需要Android APP插件。