2011-09-29 114 views
8

我試圖從下面的URL從Maven存儲庫下載單個jar文件。wget無法從maven回購站下載jar文件

http://repo1.maven.org/maven2/com/google/guava/guava-testlib/10.0/guava-testlib-10.0.jar

  • 下載在瀏覽器中正常工作,而我得到的文件,如預期。

  • 'wget'下載了一些東西,但是我得到的文件看起來不是有效的。在下載的文件上運行'jar -tf'會導致'ZipException:打開zip文件時出錯'。

  • 以編程方式從Java下載文件('InputStream'從URL寫入'FileOutputStream')下載並創建文件。使用WinZip/7-Zip打開它,它似乎包含一個名爲'guava-testlib-10.0'的文件,看起來像我期望得到的jar文件。

  • wget另一個罐子做的工作是(與-U用戶代理字符串)

這是wget的/行家或Java /行家之間的一些狡猾的相互作用預計至少在某些時候?這是一個格式不正確的jar文件,我的瀏覽器可以正確理解和下載嗎?這兩個對我來說似乎都不太合情合理。

回答

10

wget通常會被中央maven回購阻止,因爲有些人玩得不好,並嘗試過多。嘗試設置用戶代理:

wget -U "Any User Agent" http://repo1.maven.org/maven2/com/google/guava/guava-testlib/10.0/guava-testlib-10.0.jar 
+0

用戶代理似乎沒有任何區別。有或沒有,它下載的東西,只是不正確的事情。有趣的是,它不再允許我在沒有用戶代理的情況下使用源代碼jar,所以也許這是與它有關的。 –

+0

沒有用戶代理,返回碼是403(未授權)。不知道爲什麼你仍然得到.jar: - /你可以在這裏複製/粘貼wget的輸出嗎? – leonm

+0

好吧,沒有用戶代理的今天wget確實給了403,現在如果我使用用戶代理,下載就能正常工作。我想這個罐子可能一夜之間改變了? –