Подтвердить что ты не робот

Развертывание Maven зависает при загрузке maven_metadata.xml, если оно уже существует

Я настроил свой проект для развертывания в моем собственном репозитории. Когда я запускаю mvn deploy, он выглядит так, как будто он работает, но висит на сцене для загрузки файла maven_metadata.xml после загрузки банок.

INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) @ myproject ---
Uploading: scp://myrepodomain/.../myproject-0.06-2.jar
Uploaded: scp://myrepodomain/.../myproject-0.06-2.jar (39013 KB at 6234.1 KB/sec)
Uploading: scp://myrepodomain/.../myproject-0.06-2.pom
Uploaded: scp://myrepodomain/.../myproject-0.06-2.pom (8 KB at 21.6 KB/sec)
Downloading: scp://myrepodomain/.../maven-metadata.xml 
320/319 B
.....here is where it just hangs forever

Если я удалю файл maven-metadata.xml на сервере, он отлично работает и просто загружает только что созданный.

Я должен также упомянуть, что я просто использую простой HTTP-сервер с SCP, я считаю, что более крупные системы артефактов могут быть чрезмерными для того, что я делаю. Я не могу понять, как отладить это. Любые предложения будут оценены.

4b9b3361

Ответ 1

Это, по-видимому, некоторая непонятная ошибка, с которой мне не удалось найти ссылку в Maven 3.0.5 (по умолчанию в тестировании debian). Установка Maven 3.1.1 исправила эту проблему.

Ответ 2

Мне удалось это исправить, заменив все ссылки scp на sftp в моем pom.xml. Преимущество этого решения заключается в том, что он не требует дополнительной настройки. Подробнее см. http://jira.codehaus.org/browse/MNG-5605.

Ответ 3

С OS/X 10.9.3 и Maven 3.2.3 у меня была та же проблема.

Кажется, что плагин wagon поврежден при загрузке файлов во время развертывания.

Я решил это, переключив разъем вагона на "Maven Wagon SSH External" , чтобы использовать команду ssh системы.

Ниже моей модификации POM.xml:

        <extension>
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-ssh</artifactId>
            <version>2.6</version>
        </extension>

переключился на:

        <extension>
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-ssh-external</artifactId>
            <version>2.6</version>
        </extension>

И заменил

    scp://[email protected]

Через

    scpexe://[email protected]

в теги URL:

    <repository>
        ...
        <url>scpexe://[email protected]</url>
        ...
    </repository>

Ответ 4

У меня была такая проблема. Когда я попробовал wget эти ...maven_metadata.xml URL-адреса, я получил ответ 404.

Мое решение состояло в том, чтобы сократить время ожидания для этих серверов (от 2 минут по умолчанию до 2 секунд).

Сначала вам нужно найти идентификатор репозитория для этого URL-адреса. То есть, если вы застряли при загрузке с сайта artifactoryonline.org, выполните поиск этого репозитория в своих POM:

$ find . -name 'pom*.xml' | xargs grep factoryonline

Перейдите к найденному POM и выберите идентификатор репозитория. Затем отредактируйте свой ~/.m2/settings.xml примерно так:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
    https://maven.apache.org/xsd/settings-1.0.0.xsd">
    <servers>
            <server>
                    <id>Metamarkets-repository</id>
                    <configuration>
                            <httpConfiguration>
                                    <all>
                                            <connectionTimeout>2000</connectionTimeout>
                                            <readTimeout>2000</readTimeout>
                                    </all>
                            </httpConfiguration>
                    </configuration>
            </server>
    </servers>
</settings>

Это заставит загрузку сдаваться через 2 секунды и продолжить сборку (при условии, что maven_metadata.xml будет загружен из другого места).