0

我已使用“.gradle\init.d”目录中的“offline.gradle”文件方法将 gradle 设置为使用本地 maven 存储库(gmaven_stable 文件)。

我不断用 gradle 依赖项缓存 (.gradle\caches\modules-2\files-2.1) 中已下载的文件更新本地 maven 存储库。

但是,我意识到 gradle 在“gradle sync”和“compile time”期间仍然会下载一些依赖项,其中大部分我已经在我的本地 maven repo 中拥有。每当我在 Android Studio 中点击“构建”或“运行”按钮时,总是会下载诸如“junit”、“google play services”之类的依赖项。

如果能指导我在 gradle 中停止这种行为,我将不胜感激。由于我所在地区的互联网访问成本低且成本高,我花费大量时间收集依赖项来构建我的本地 maven 存储库。每当“Gradle”使用我可以访问的稀缺互联网来重新下载我已经缓存在本地 maven 存储库中的那些依赖项时,这非常烦人。

4

1 回答 1

0

Gradle 有一个内置选项可以避免网络访问:

命令行开关告诉 Gradle 始终使用缓存中的--offline依赖模块,无论它们是否需要再次检查。当离线运行时,Gradle 永远不会尝试访问网络来执行依赖解析。如果依赖缓存中不存在所需的模块,则构建执行将失败。

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

我不断用 gradle 依赖项缓存 (.gradle\caches\modules-2\files-2.1) 中已下载的文件更新本地 maven 存储库。

应该手动弄乱 Gradle 的内部缓存文件夹。相反,您将 JAR 放在其他文件夹中,您可以在其中访问它们,例如您的主目录。然后,您可以配置一个平面目录存储库:

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")
        }
    }
}
于 2021-12-07T04:31:03.507 回答