簡體   English   中英

Gradle 仍然下載本地倉庫中已有的依賴項

[英]Gradle still downloads dependencies already available in local repo

我已使用“.gradle\init.d”目錄中的“offline.gradle”文件方法將 gradle 設置為使用本地 maven 存儲庫(gmaven_stable 文件)。

我不斷用 gradle 依賴項緩存 (.gradle\caches\modules-2\files-2.1) 中已下載的文件更新本地 maven 存儲庫。

但是,我已經意識到 gradle 在“gradle sync”和“compile time”期間仍然會下載一些依賴項,其中大部分我已經在我的本地 maven 存儲庫中擁有。 每當我在 Android Studio 中點擊“構建”或“運行”按鈕時,總是會下載諸如“junit”、“google play services”和許多其他依賴項。

如果有人指導我在 gradle 中停止這種行為,我將不勝感激。 我花費大量時間收集依賴項來構建我的本地 maven 存儲庫,因為我所在地區的互聯網訪問成本低且成本高。 每當“Gradle”使用我可以訪問的稀缺互聯網來重新下載我已經緩存在本地 maven 存儲庫中的那些依賴項時,這非常煩人。

Gradle 有一個內置選項可以避免網絡訪問:

--offline命令行開關告訴 Gradle 始終使用緩存中的依賴模塊,無論是否要再次檢查它們。 離線運行時,Gradle 永遠不會嘗試訪問網絡來執行依賴解析。 如果依賴緩存中不存在所需的模塊,則構建執行將失敗。

https://docs.gradle.org/current/userguide/dynamic_versions.html#sec:offline-mode

我不斷用 gradle 依賴項緩存 (.gradle\caches\modules-2\files-2.1) 中已下載的文件更新本地 maven 存儲庫。

應該手動弄亂 Gradle 的內部緩存文件夾。 相反,您將 JARs 放在您可以訪問它們的其他文件夾中,例如您的主目錄。 然后,您可以配置一個平面目錄存儲庫:

repositories {
    flatDir {
        dirs("mylibs")
    }

}

https://docs.gradle.org/current/userguide/declaring_repositories.html#sub:flat_dir_resolver

您還需要下載並定義項目中使用的各種 Gradle 插件,並以與應用程序存儲庫相同的方式配置它們:

// settings.gradle.kts

pluginManagement {
    repositories {
        flatDir {
            dirs("mylibs")
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM