關於Gradle,我最一開始是從libGDX學到的。現在使用Android Studio新開一個project的話,default就會有Gradle了。
下圖為Gradle資料夾與default檔案們:
Gradle是一個專案管理的工具,wiki上對Gradle的分類為build automation,最常見的build automation工具我想就是make了。規模較大的公司通常也會導入類似的工具,可以整合原始碼、版本控制、編譯、測試等功能。
根據libGDX對於Gradle的介紹有兩個重點:
以下為一些名詞解釋:
參考 Gradle對dependency的解釋,假設我有一個project需要使用到A library和B library,那A和B就是我的project的dependencies。
Gradle可設定dependency的scope,例如編譯程式需要使用A library,但B library只有跑測試時需要。
如果A library有個dependency是C library,那Gradle在處理A的時候也會順便處理C。
Dependency太多有可能會造成dependency hell(相依性地獄),例如A library需要C library version 1.2,B library需要C library version 5.1,很不巧的我的project需要A和B,這樣就會有衝突,造成錯誤。至於解法應該又是另一門學問了,先跳過。Gradle 有提供build scan的工具來掃描這樣的問題。
Goodle搜尋第一筆就是 Maven Repository,看起來是個放很多library(artifact)的地方。跟據Maven官網的介紹,repository有兩種,local和remote。