Что может быть причиной "передачи файла ошибки" в maven?

Я установил maven 2.2.1 на свой debian-компьютер и получил следующую ошибку

[WARNING] repository metadata for: 'org.apache.maven.plugins' could not be retrieved  from repository: central due to an error: Error transferring file: repository.exoplatform.org

То, что мне удалось найти в связи с этой проблемой, обычно связано с неправильной настройкой прокси-сервера или блокированием трафика брандмауэра, но на этом компьютере у меня нет. Кроме того, у меня такой же файл настроек на моем компьютере с Windows, и он работает нормально.

Любые предложения будут очень признательны, поскольку я в тупике.

[email protected]:~/test$ mvn -v
Apache Maven 2.2.1 (r801777; 2009-08-07 05:16:01+1000)
Java version: 1.5.0_22
Java home: /usr/local/bin/jdk1.5.0_22/jre
Default locale: en_AU, platform encoding: UTF-8
OS name: "linux" version: "2.6.22-3-amd64" arch: "i386" Family: "unix"
[email protected]:~/test$ mvn archetype:generate
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'archetype'.
[INFO] org.apache.maven.plugins: checking for updates from central
[WARNING] repository metadata for: 'org.apache.maven.plugins' could not be retrieved from repository: central due to an error: Error transferring file: repository.exoplatform.org
[INFO] Repository 'central' will be blacklisted
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] The plugin 'org.apache.maven.plugins:maven-archetype-plugin' does not exist or no valid version could be found
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: < 1 second
[INFO] Finished at: Wed Jun 30 10:18:33 EST 2010
[INFO] Final Memory: 2M/136M
[INFO] ------------------------------------------------------------------------

* РЕДАКТИРОВАТЬ *

Я попытался удалить файл settings.xml и создать новый проект maven. Я получил следующее

[email protected]:~/test$ mvn archetype:generate
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'archetype'.
[INFO] org.apache.maven.plugins: checking for updates from central
[WARNING] repository metadata for: 'org.apache.maven.plugins' could not be retrieved from repository: central due to an error: Error transferring file: repo1.maven.org
[INFO] Repository 'central' will be blacklisted
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] The plugin 'org.apache.maven.plugins:maven-archetype-plugin' does not exist or no valid version could be found
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: < 1 second
[INFO] Finished at: Wed Jun 30 11:40:26 EST 2010
[INFO] Final Memory: 1M/136M
[INFO] ------------------------------------------------------------------------

Я думаю, это исключает проблему с параметрами settings.xml или pom. Есть ли способ получить больше информации о том, почему maven can not подключается к репозиторию?

Ответ 1

Просто, чтобы закрыть цикл на этом, это оказалось проблемой с библиотеками debian, доступными для использования java для разрешения имен хостов. Исправление - применить новый libdns для java, как описано здесь http://www.ehow.com/how_4747553_fix-unknownhostexception-java-applications-ubuntu.html. Как только я это сделал, я могу запустить mvn с помощью jdk5 и jdk6.

Ответ 2

Я пробовал одни и те же команды и получал одно и то же сообщение об ошибке, поэтому я использовал флаг отладки. Это дает другое корневое исключение в зависимости от настроек прокси-сервера и т.д. Попробуйте запустить то же самое, если вы получите более подробный вывод.

mvn -X archetype:generate

Случай 1:

Машина, не подключенная к сети (кабель отключен), дает отладочное сообщение

[DEBUG] Exception
org.apache.maven.wagon.TransferFailedException: Error transferring file
...
Caused by: java.net.UnknownHostException: repo1.maven.org
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
[INFO] Repository 'central' will be blacklisted

Случай 2:

Машина, связанная с неправильным прокси-сервером, дает сообщение об отладке

[DEBUG] Exception
org.apache.maven.wagon.TransferFailedException: Error transferring file
...
Caused by: java.net.ConnectException: Connection timed out: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
[INFO] Repository 'central' will be blacklisted

Здесь ошибка может быть 403, соединение reset или авторизация или доступ к запрещенной ошибке

Случай 3:

Машина с прямым подключением к Интернету

[DEBUG] Trying repository central
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-archet
ype-plugin/2.0-alpha-5/maven-archetype-plugin-2.0-alpha-5.jar
[DEBUG]   Artifact resolved
[INFO] ------------------------------------------------------------------------

и т.д., пока он не будет работать.

Ответ 3

Я бы предположил, что это имеет какое-то отношение к настройкам репозитория в pom, родительском pom или в вашем файле ~/.m2/settings.xml. Возможно также, что репо на exoplatform неправильно сконфигурировано.

Без установки репозиториев плагин archtype будет создан с repo1.maven.org

http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-archetype-plugin/

Ответ 4

У меня была та же проблема. В моем случае это был фактически оставшийся файл settings.xml из предыдущего задания. Я скопировал и удалил файл ~/.m2/settings.xml, и сборка прошла отлично.

Ответ 5

Обновить до maven 3.0.4 или вверх, если возможно.

Я изучил исходный код maven: в maven 2.2.1 есть проблема с загрузкой. Прокси-сервер рассматривается как HTTPS при доступе к серверам HTTPS, но вы можете иметь только один прокси-сервер. Нет никакого возврата к HTTP-прокси. В maven 3.0.4 этот вопрос, похоже, решен.

Ответ 6

Быстрое "решение" - предоставить полное командное имя плагина в команде:

mvn org.mortbay.jetty: maven-jetty-plugin: run

Ответ 7

Не забудьте отключить VPN , особенно для китайских людей. Это проблема с рукопожатием SSL.