2011-09-29 9 views
8

Próbuję pobrać pojedynczy plik JAR z repozytorium maven, z poniższego adresu URL.wget nie działa, aby pobrać plik jar z maven repo

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

  • Downloading w przeglądarce działa dobrze, a ja się plik, jak oczekiwano.

  • "Wget" pobiera coś, ale plik, który otrzymuję, nie wydaje się być prawidłowy. Uruchomienie 'jar -tf' na pobranym pliku daje 'ZipException: błąd przy otwieraniu pliku zip'.

  • Pobieranie pliku programowo z Java ("InputStream" z adresu URL do "FileOutputStream") powoduje pobranie pliku i utworzenie pliku. Otwieranie tego za pomocą WinZip/7-Zip wydaje się zawierać jeden plik o nazwie "guava-testlib-10.0", który wygląda jak archiwum słoików, które spodziewałem się uzyskać.

  • wget kolejny słoik działa zgodnie z oczekiwaniami, przynajmniej czasami (z -U User Agent ciąg)

Czy to jakiś podejrzanie interakcja między wget/Maven lub Java/maven? Czy jest to zniekształcony plik JAR, który moja przeglądarka poprawnie odczytuje i pobiera? Oba wydają mi się nieco nieprawdopodobne.

Odpowiedz

10

Generalnie wget zostaje zablokowany przed repozytorium centralnego maven, ponieważ niektórzy ludzie nie grają zbyt ładnie i starają się zbytnio zająć. Spróbuj ustawić klienta użytkownika:

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

Nie wydaje się, aby agent użytkownika robił jakąkolwiek różnicę. Z lub bez, pobiera coś, po prostu nie jest to właściwe. Co ciekawe, nie pozwala mi już wget słoić źródeł bez klienta użytkownika, więc może to ma coś wspólnego z tym. –

+0

Bez kodu użytkownika kod powrotu wynosi 403 (nieautoryzowane). Nie wiesz, dlaczego nadal dostajesz .jar: -/Czy możesz skopiować/wkleić dane wyjściowe wget tutaj? – leonm

+0

OK, dzisiaj wget bez klienta użytkownika daje 403, a teraz pobieranie działa poprawnie, jeśli używam agenta użytkownika. Przypuszczam, że słoik mógł się zmienić z dnia na dzień? –