我有一个使用gradle编译的项目,在maven存储库中有依赖项。
它已经工作了几个月了,但在设置新机器时,我无法编译,访问依赖文件时出错。
[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文件(意外)。如果我再次重命名/extract,那么它将正确地提取为文件的内容(预期)。
我可以通过以下方式手动解决此问题:
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文件“损坏”有关。
虽然这是可行的,但对于自动构建来说,这是一个痛苦的解决方案。
我正在寻找一些指导,关于可能导致这一问题的原因以及如何解决根本问题。
发布于 2012-07-04 21:55:03
正如上面@peter-niederwieser所建议的,这是通过升级Gradle解决的!很简单。
https://stackoverflow.com/questions/11314806
复制相似问题