2013-12-09 18 views
18

Ho configurato il mio progetto per essere distribuito nel mio repository. Quando eseguo mvn deploy sembra che funzioni, ma si blocca sul palco per scaricare il file maven_metadata.xml dopo aver caricato i giare.Maven deploy si blocca durante il download di maven_metadata.xml se esiste già

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 

Se elimino il file maven-metadata.xml sul server, funziona benissimo e solo una carica appena generato uno.

Devo anche dire che sto usando un semplice server HTTP con SCP, trovo che i sistemi di artefatti più grandi siano un modo eccessivo per quello che sto facendo. Non riesco a capire come eseguire il debug di questo. Tutti i suggerimenti sarebbero apprezzati.

+0

vedi bug https://jira.codehaus.org/browse/MDEPLOY-177 –

risposta

0

Questo sembra essere un bug oscuro Non sono riuscito a trovare un riferimento a in Maven 3.0.5 (impostazione predefinita in debian testing). L'installazione di Maven 3.1.1 risolve questo problema.

+8

Questo ha appena iniziato a verificarsi per me utilizzando Maven 3.2.1. –

+0

Su Ubuntu ho rimosso 3.0.5 con apt-get poi installato manualmente 3.3.3 e il problema è andato via. – TimP

+0

Apache ssh-Wagon è il problema https://issues.apache.org/jira/browse/WAGON-429. Hai bisogno della versione 2.9! Questo bug è stato fastidioso per più di due anni! Le principali distribuzioni hanno il bug ad es. Ubuntu 14.04 LTS con mvn 3.0.5 –

8

Sono riuscito a risolvere questo problema scambiando tutti i riferimenti di scp a sftp nel mio pom.xml. Il vantaggio di questa soluzione è che non richiede alcuna configurazione aggiuntiva. Vedere http://jira.codehaus.org/browse/MNG-5605 per ulteriori informazioni.

+0

Perfetto! La modifica del protocollo da scp a sftp ha risolto il problema. – Krzysiek

+0

Questa è la migliore risposta in quanto funziona con Maven 3.1.1 anche con l'ultima versione di Maven 3.5.0. 'scp' e' scpexe' hanno lavorato per Maven 3.1.1 ma hanno smesso di funzionare per le versioni successive di Maven. –

8

Con OS/X 10.9.3 e Maven 3.2.3, ho avuto lo stesso problema.

Sembra essere il plugin wagon che si rompe durante il download dei file durante la distribuzione.

Ho risolto il problema passando il connettore del carro a "Maven Wagon SSH External" per utilizzare il comando ssh del sistema.

Di seguito la mia modifica pom.xml:

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

passati a:

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

e sostituito

scp://[email protected] 

Con

scpexe://[email protected] 

in tag url:

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

L'aggiornamento a una versione successiva di wagon-ssh (nel mio caso 2.9) ha risolto il problema! – wau

+1

Lo stesso qui, aumentando la versione a 2.10 risolto. – Daniel

0

ho avuto un problema come questo. Quando ho provato wget questi URL ...maven_metadata.xml ho ricevuto una risposta 404.

La mia soluzione era quella di abbreviare il timeout per questi server (da 2 minuti di default a 2 secondi).

Prima devi trovare l'ID del repository per questo URL. Cioè se sei bloccato sul download da artifactoryonline.org, ricerca di questo repository nelle POM:

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

Vai trovato POM a prendere l'ID del repository. Quindi modificare il ~/.m2/settings.xml a qualcosa di simile:

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

Questo renderà il download rinunciare dopo 2 secondi e lasciare che la build continuare (assumendo che il maven_metadata.xml verranno scaricati da qualche altra parte).

Problemi correlati