【FAQ】命令行如何刷新gradle依賴緩存?

【問題描述】

最近 gradle 在下載 maven 私服上的 aar 快照的時候,突然提示下載不了 xxx.jar。可是 maven 私服上只有 aar 包,並沒有 jar 包。

【原因分析】

第一次嘗試:從後綴入手:

因爲 build.gradle 裏沒有指定後綴,剛好 gradle 又升了級,心想是不是應該在 compile 的配置末尾加上 “@aar” 指定後綴,於是加上,果然好了。

可是還是提示下不來 aar。

第二次嘗試:從 aar 包入手:

發現上傳的 aar 包怎麼多了,分別上傳了 debug 和 release 版本,我只要 release ( ⊙ o ⊙ )啊!

然後又哼哧哼哧改上傳 aar 的腳本,加了個重命名函數,重新出了新的 aar 快照包並上傳 maven 私服,果然,上傳的包恢復如初。

可是項目工程依舊提示下不了 aar。

第三次嘗試:有第二次的發現,這次仔仔細細對照 aar 的名字,發現gardle 下載的 aar 包的時間戳不對!竟然取的是老的包( ⊙ o ⊙ )!

想着這簡單嘛,清一下 gradle 緩存。按下述緩存目錄,找到 aar 存儲的地址,刪了:

~/.gradle/caches/modules-2/files-2.1/com/**/**

這樣總成了吧?可是,取的還是老版本的包。( ⊙ o ⊙ )啊!!!!

【解決方案】

終於,還是查官網,找到了方法:

$ gradle build --refresh-dependencies

原來這麼簡單?第一次嘗試的方法,加 @aar 的步驟也可以免了,一切恢復正常:)


解釋:

Gradle 的依賴緩存可能與配置庫當前狀態不同步。比如配置錯誤、nexus 包不存在、下載中斷、手工刪除本地緩存(我的第三種嘗試)等,都會影響正常下載。

所以如果要刷新依賴關係緩存中的所有依賴關係,就要在 build 後使用 --refresh-dependencies選項,它會重新計算動態版本並下載。

參考:

https://docs.gradle.org/current/userguide/dependency_management.html#sub:cache_refresh

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章