如何通过“无法读取zip文件”解决gradle依赖性问题?

时间:2012-07-03 16:00:23

标签: gradle

我有一个项目,它使用gradle与maven repo中的依赖项进行编译。

它已经工作了好几个月,但是在设置新机器时,我无法编译,错误访问依赖文件。

[ant:javac] error: error reading /Users/rayj/.gradle/caches/artifacts-4/com.google.guava/guava/c12498cf18507aa6433a94eb7d3e77d5/jars/guava-11.0.2.jar; cannot read zip file
I was able to reproduce on another machine by removing my gradle cache ("~/.gradle/caches/artifacts-4/").

我能够确定“损坏的”jar文件的行为与“未损坏的”jar文件不同。 对于“未损坏的”jar文件,我可以重命名为“.zip”并解压缩以查看文件的内容(如预期的那样)。 对于“损坏的”jar文件,如果我重命名为“.zip”并解压缩,则输出是另一个jar文件(意外)。如果我再次重命名/提取,则它会正确提取文件的内容(预期)。

我可以通过以下方式手动解决此问题:

for each corrupt jar file { 
  rename to .jar to .zip and extract to create a new jar //this turns a corrupt jar into a non-corrupt jar)
}

这表明问题仅与jar文件“腐败”有关。

虽然这有效,但对于自动构建来说,这是一个痛苦的解决方案=)

我正在寻找关于可能导致此问题以及如何解决根本问题的一些指导。

1 个答案:

答案 0 :(得分:1)

正如@ peter-niederwieser上面提到的那样,通过升级Gradle解决了这个问题!很容易。