将我的项目从 Ubuntu 转移到 Mac 时,我将 Java 依赖项和 jar 从 Ubuntu 上的
~/.gradle/cache
复制到 Mac 上的 ~/.gradle/caches/artifacts
以避免 gradle 再次下载依赖项。令我惊讶的是,运行 gradle idea
(我们使用的是 Intellij Idea)清空 ~/.gradle/caches/artifacts
文件夹并开始再次下载依赖项,但是
我在 SOF 上看到大量资源和问题讨论强制 gradle 重新下载依赖项(例如,使用 --refresh-dependency 标志),但到目前为止还没有关于如何阻止 gradle 这样做的内容,而是研究一下它的本地缓存。
是否有一个标志或开关可以帮助完成此任务?
我正在使用 gradle 1.0-milestone-3,不幸的是,我没有特权很快升级它。
有 --offline flag 可以阻止 Gradle 访问网络资源。因此,它将使用 Gradle 依赖项缓存,而不是尝试从远程服务器刷新依赖项。请参阅如何将 gradle 配置为“离线”工作(使用缓存的依赖项)。
当然,正如他的答案中提到的lance-java可重定位依赖项缓存是 v6.1+ 功能(请参阅使依赖项缓存可重定位#1338),因此不适用于使用早期 Gradle 版本生成的缓存.
Gradle 6.1 之前不支持此功能,您使用的是 Gradle 6.1.1 或更高版本吗?
Gradle 的早期版本在每个项目的缓存键中包含绝对文件路径,这使得从一台计算机复制构建缓存并在另一台计算机上使用它变得困难。
有关可重定位构建缓存,请参阅 Gradle 6.1.1 发行说明