如何将Gradle缓存复制到另一台离线机器?

7
我有两台Ubuntu 16.04机器,一台连接到互联网,而另一台完全离线。我想在离线机器上构建一个Android项目。在在线机器上,它可以成功构建。因此,我将整个.gradle复制到离线机器,并使用--offline标志运行构建过程。令人惊讶的是它失败了。有很多问题。
No cached version of ....

我猜测问题出在生成每个.jar.pom等文件的哈希算法上。我认为哈希值在不同的机器上是不同的。同时,注意我的用户名和机器名在这两台机器上是不同的。看起来,哈希值与用户名有关系。我正确吗?是否有一种干净的解决方案,在离线机器上构建项目?
  • Gradle 4.0-bin
  • com.android.tools.build 2.3.0

解决方案:https://discuss.gradle.org/t/how-to-copy-gradle-caches-to-another-offline-machine/23413/2?u=abforce - frogatto
2个回答

0
根据官方文档,自Gradle 6.1版本以来,可以将缓存从路径$GRADLE_HOME/caches/modules-<version>复制到另一台机器上以便重用。唯一需要注意的是应跳过此目录中的*.lockgc.properties文件。

0

有几个目录可以复制到离线机器上:

$HOME/.gradle
$HOME/.android
$HOME/.m2

随着您构建的整个项目,还会有一个本地 .gradle 目录。

同时,请确保已安装 Android SDK m2 存储库或者将位于"https://maven.google.com"的支持库的 m2 存储库复制过去。


没有 .m2 目录,但只有 .gradle.android。已经复制了两个目录,但仍然出现相同的错误。 - frogatto
是的,整个项目目录包括.gradle - frogatto
我认为那些哈希字符串是主要罪犯。 - frogatto
我现在再次确认了。确实没有这样的目录。 - frogatto
关于哈希,md5是什么? - frogatto
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接