2013-12-09 13 views
18

Skonfigurowałem mój projekt do wdrożenia na moje własne repozytorium. Po uruchomieniu mvn deploy wygląda na to, że działa, ale zawiesza się na etapie pobierania pliku maven_metadata.xml po przesłaniu słoików.Instalacja Maven zawiesza się podczas pobierania pliku maven_metadata.xml, jeśli istnieje już

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 

Gdybym usunąć plik maven-metadata.xml na serwerze, to działa dobrze i po prostu przesyła świeżo wygenerowany.

Powinienem także wspomnieć, że używam prostego serwera HTTP z SCP. Uważam, że większe systemy artefaktów są zbyt przesadne dla tego, co robię. Nie mogę wymyślić, jak to jeszcze debugować. Wszelkie sugestie będą mile widziane.

+0

patrz błąd https://jira.codehaus.org/browse/MDEPLOY-177 –

Odpowiedz

0

Wygląda na to, że jest to jakiś niejasny błąd, którego nie mogłem znaleźć w Maven 3.0.5 (domyślnie w testowaniu Debiana). Instalacja Maven 3.1.1 rozwiązała ten problem.

+8

To właśnie zaczęło się pojawiać u mnie przy użyciu Maven 3.2.1. –

+0

Na ubuntu usunąłem 3.0.5 z apt-get, następnie ręcznie zainstalowałem 3.3.3 i problem zniknął. – TimP

+0

The Apache ssh-Wagon to problem https://issues.apache.org/jira/browse/WAGON-429. Potrzebujesz wersji 2.9! Ten błąd jest denerwujący od ponad dwóch lat! Główne dystrybucje mają błąd, np. Ubuntu 14.04 LTS z mvn 3.0.5 –

8

Udało mi się to naprawić, zamieniając wszystkie odniesienia do SCP do sftp w moim pom.xml. Zaletą tego rozwiązania jest to, że nie wymaga dodatkowej konfiguracji. Aby uzyskać więcej informacji, patrz http://jira.codehaus.org/browse/MNG-5605.

+0

Idealny! Zmiana protokołu z SCP na sftp rozwiązał mój problem. – Krzysiek

+0

To najlepsza odpowiedź, ponieważ działa z Maven 3.1.1 nawet najnowszym Maven 3.5.0. 'scp' i' scpexe' pracowali dla maven 3.1.1, ale przestali pracować dla późniejszych wersji maven. –

8

Z OS/X 10.9.3 i Maven 3.2.3 miałem ten sam problem.

Wygląda na to, że wtyczka wagonów jest uszkodzona podczas pobierania plików podczas wdrażania.

Rozwiązałem go, przełączając złącze wagonu na "Maven Wagon SSH External", aby użyć polecenia systemowego ssh.

Poniżej moja modyfikacja pom.xml:

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

przełączony:

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

i zastąpione

scp://[email protected] 

Przez

scpexe://[email protected] 

do znaczników URL:

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

Aktualizacja do nowszej wersji wagon-ssh (w moim przypadku 2.9) rozwiązała problem! – wau

+1

To samo tutaj, zwiększając ją do wersji 2.10. – Daniel

0

miałem problem takiego. Kiedy wypróbowałem wget tych adresów URL otrzymałem odpowiedź 404.

Moje rozwiązanie polegało na skróceniu limitu czasu dla tych serwerów (domyślnie z 2 minut do 2 sekund).

Najpierw musisz znaleźć identyfikator repozytorium dla tego adresu URL. To jest, jeśli utkniesz na pobraniu od artifactoryonline.org, poszukać w swoim repozytorium POM:

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

Przejdź do znalezionego POM i sprowadzić repozytorium identyfikator. Następnie edytować ~/.m2/settings.xml do czegoś takiego:

<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> 

To sprawi, że pobieranie zrezygnować po 2 sekundach i niech nadal build (zakładając maven_metadata.xml zostaną pobrane z innego miejsca).