#java #maven #jar #wget #guava
#java #maven #jar #wget #гуава
Вопрос:
Я пытаюсь загрузить один файл jar из репозитория maven по URL-адресу ниже.
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
другой jar работает, как и ожидалось, по крайней мере, иногда (со-U
строкой агента пользователя)
Это какое-то хитроумное взаимодействие между wget / maven или Java / maven? Является ли это искаженным файлом jar, который мой браузер понимает и загружает правильно? Оба они кажутся мне немного неправдоподобными.
Ответ №1:
wget обычно блокируется из центрального репозитория maven, потому что некоторые люди не играют красиво и пытаются wget слишком много. Попробуйте установить пользовательский агент:
wget -U "Any User Agent" http://repo1.maven.org/maven2/com/google/guava/guava-testlib/10.0/guava-testlib-10.0.jar
Комментарии:
1. Агент пользователя, похоже, не имеет никакого значения. С или без, он загружает что-то, просто не то, что нужно. Интересно, что он больше не позволяет мне создавать исходные файлы jar без пользовательского агента, так что, возможно, это как-то связано с этим.
2. Без пользовательского агента код возврата равен 403 (неавторизованный). Не уверен, почему вы все еще получаете .jar:-/ Можете ли вы скопировать / вставить вывод wget здесь?
3. Хорошо, сегодня wget без пользовательского агента выдает значение 403, и теперь загрузка работает правильно, если я использую пользовательский агент. Я полагаю, что jar мог измениться за одну ночь?