将 gradle 缓存复制到离线系统时出现问题

Issue in copying gradle cache to an offline system

我有一台笔记本电脑,我正在其中 运行使用包装器 gradlew 创建一个 Gradle 项目。该项目的依赖项只能从我们组织的网络下载。 我的测试团队想要在我们的组织网络之外测试该项目,因此我无法下载依赖项。所以我已经将整个“.gradle”文件夹从我机器的 C:\Users\MyUserName 复制到另一个系统的 C:\Users\Admin。而我运行,gradlew --offline。但是我收到一条错误消息,指出尚未找到缓存,尽管 JARS 存在于“.gradle”目录中。有什么我遗漏的吗?

gradle 缓存文件夹不应该被复制到不同的目录,因为存储在其中的一些路径被绝对路径引用。您至少需要从 gradle 用户主目录 C://Users/Admin 开始 运行 您的构建,以便稍后使用 --offline

让它在您的离线系统上运行

我会为此使用专用文件夹(如 C:/gradle-cache)并设置 GRADLE_USER_HOME 指向该目录或使用 gradle 中的 -g 选项来指定 gradle 缓存文件夹。

目前 Gradle 中存在一个错误,阻止 Wrapper 遵守 -g 选项 (https://github.com/gradle/gradle/issues/1895)。因此,当您似乎使用包装器时,您可能应该使用 GRADLE_USER_HOME 环境变量。

然后在您的目标系统上再次将缓存复制到 C:/gradle-cache 并设置 GRADLE_USER_HOME 并且您的离线构建应该可以工作。