Gradle"无法打开buildscript类缓存" - 有更好的解决方法吗?

edc*_*lrk 25 gradle

在.gradle文件中添加依赖项后,我们的构建服务器开始出现以下问题:

FAILURE: Build failed with an exception.

* What went wrong:
Could not open buildscript class cache for build file '/u01/apps/.jenkins/workspace/[path name snipped]/build.gradle'     (/home/[username]/.gradle/caches/1.3/scripts/build_5jii90b0hvl37q9m8vfhik495b/ProjectScript/buildscript).
> java.io.EOFException
Run Code Online (Sandbox Code Playgroud)

我们能够通过清除构建从属上的gradle缓存来解决它.但是,我担心这只是一个临时修复,它可能会再次出现.有没有更好的方法来解决这个问题?

小智 30

转到位置".gradle\caches\2.0\scripts\build_7l4t45nbnsvdcl79ol8u0beli4\ProjectScript"并删除cache.properties.lock文件

  • 是的,这对我有用.如果没有互联网,程序员会怎么做...... ;-) (3认同)
  • 继续删除/ ProjectScript/buildscript和/ ProjectScript/no_buildscript中的cache.properties.lock文件.删除10个此类文件后为我工作. (3认同)

Gay*_*tti 10

这些异常通常是由于缓存文件损坏而发生的.

在大多数情况下,删除缓存确实有效.

Linux的

rm -rf ~/.gradle/caches
Run Code Online (Sandbox Code Playgroud)

视窗

删除%USER_HOME%.gradle/caches文件夹


Joa*_*son 4

首先我建议您从 Gradle 1.3 升级到最新版本。自 1.3 以来,构建脚本缓存发生了很大变化。

其次,在 Jenkins 环境中运行时,考虑将 gradle 用户主页移动到 ~/.gradle/ 之外的其他位置通常是一件好事。可以通过在 Jenkins 设置(配置系统)中设置环境变量 GRADLE_USER_HOME 来更改它。例如,在我们的环境中,我们将 gradle 缓存放在本地 SSD 磁盘上,而不是我们的 NFS 挂载 ~/.

第三个选项是将每个作业工作区用作 gradle 用户主页。这是通过在 Jenkins 作业配置中标记“强制 GRADLE_USER_HOME 使用工作区”复选框来完成的。如果您的作业始终在同一台计算机上运行并且您在每次构建后不删除工作区,那么这非常有效。