事情是這樣的句葵。
這周二截汪,同事提交了一個組件的新版本0.1.0
恼除,更新了工程里對這個組件的依賴的版本號之后踪旷,Sync Now
成功,但發(fā)現(xiàn)新版本把以前的一個接口移除了豁辉,需要重新加回來令野。
于是乎,同事重新提交了組件徽级,然而版本號不變气破,依然保持0.1.0
。
接著悲劇就發(fā)生了餐抢。由于之前Gradle 本地已經(jīng)下載到了舊的0.1.0
版本的組件现使,這個組件緩存到了本機(jī)的cache中,后續(xù)Gradle發(fā)現(xiàn)本地已有0.1.0
版本旷痕,就不會重復(fù)發(fā)起網(wǎng)絡(luò)請求去拉取這個組件碳锈,因而本地使用的,就一直是舊的那份緩存欺抗,而非服務(wù)器上更新過的那份售碳。
解決問題關(guān)鍵,就是讓Gradle重新去下載依賴的組件。有兩種方式:
清除Gradle 的緩存:緩存所在路徑為
~/.gradle/caches/
贸人,簡單粗暴地使用rm -rf ~/.gradle/caches/
干掉所有緩存间景,自然就能讓Gradle重新下載依賴的組件。但這種方式過于粗暴艺智,會影響全局所有的緩存倘要,不僅僅是所有工程的依賴,還包括Gradle Wrapper依賴的Gradle 版本緩存力惯。另一種方式碗誉,是在執(zhí)行 Gradle 腳本任務(wù)的命令后面,追加
--refresh-dependencies
參數(shù)父晶,讓Gradle在執(zhí)行過程中,刷新相關(guān)的依賴弄跌。這樣就能做到僅刷新當(dāng)前工程的依賴甲喝,而不影響其他的東西。示例:./gradlew :app:assembleDebug --refresh-dependencies
參考資料
How can I force gradle to redownload dependencies?
The Gradle build system- Tutorial