将 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
并且您的离线构建应该可以工作。
我有一台笔记本电脑,我正在其中 运行使用包装器 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
并且您的离线构建应该可以工作。