2012-07-03 15 views
0

我有一個項目,使用gradle在maven回購中使用依賴關係。如何解決「不能讀取zip文件」的gradle依賴問題?

它已經工作了很多個月,但是當設置一臺新機器時,我無法編譯,錯誤地訪問一個依賴文件。

[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」並提取zip以查看文件的內容(如預期的那樣)。 對於「損壞的」jar文件,如果我重命名爲「.zip」並解壓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文件是「腐敗」:

我可以手動解決此問題。

雖然這個工作,它是一個痛苦的分辨率自動構建=)

我在找一些指導,以什麼可能造成這一點,如何解決其根源問題。

+0

聽起來很奇怪。您是否遇到與Gradle 1.0相同的問題? (你似乎正在使用相當老的Gradle版本。) –

+0

thx,這看起來像這樣一個明顯的解決方案!如果你把它作爲一個「解決方案」,我會標記爲完整的。 – jayraynet

回答

1

正如上面的@ peter-niederwieser所建議的,這是通過升級Gradle來解決的!很簡單。