2016-05-24 18 views
7

Eseguo una build di maven e vedo lo stesso artefatto scaricato più volte. Dopo aver scaricato con successo da un repository, viene tentato il download da un altro repository. Alcuni download sono (0 B a 0.0 KB/sec).Perché Maven sta scaricando lo stesso artefatto più volte?

[INFO] Downloading: https://p-nexus.mycompany.com/nexus/content/repositories/Myproject-group/aopalliance/aopalliance/1.0/aopalliance-1.0.jar 
[INFO] Downloaded: https://p-nexus.mycompany.com/nexus/content/repositories/Myproject-group/aopalliance/aopalliance/1.0/aopalliance-1.0.jar (5 KB at 59.8 KB/sec) 
[INFO] Downloading: https://p-nexus.mycompany.com/nexus/content/repositories/public/aopalliance/aopalliance/1.0/aopalliance-1.0.jar 
[INFO] Downloaded: https://p-nexus.mycompany.com/nexus/content/repositories/public/aopalliance/aopalliance/1.0/aopalliance-1.0.jar (0 B at 0.0 KB/sec) 
[INFO] Downloading: http://repo.spring.io/ext-release-local/aopalliance/aopalliance/1.0/aopalliance-1.0.jar 
[INFO] Downloading: http://repo.spring.io/milestone/aopalliance/aopalliance/1.0/aopalliance-1.0.jar 
[INFO] Downloading: http://repo.spring.io/snapshot/aopalliance/aopalliance/1.0/aopalliance-1.0.jar 

La configurazione repository:

<repositories> 
    <repository> 
     <id>Myproject-group</id> 
     <name>Myproject-group</name> 
     <layout>default</layout> 
     <url>https://p-nexus.mycompany.com/nexus/content/repositories/Myproject-group/</url> 
     <snapshots> 
      <enabled>false</enabled> 
      <updatePolicy>never</updatePolicy> 
     </snapshots> 
     <releases> 
      <enabled>true</enabled> 
      <updatePolicy>never</updatePolicy> 
     </releases> 
    </repository> 
</repositories> 
+0

Non è proprio una buona idea avere il repository 'updatePolicy' di' snapshots' impostato su 'never'. Ciò non porterà mai alcuna modifica oltre alla prima versione scaricata di un artefatto di istantanee. Quello che stai facendo avrà senso solo se il gruppo che stai usando contiene solo repository di release. – carlspring

+0

carlspring, questo repository non contiene istantanee. Credo che updatePolicy sia superfluo qui, ho solo aggiunto tutte le impostazioni che potrebbero influenzare questo download. –

+1

Configura il tuo repository nexus corretto (singolo gruppo da usare) e usa solo un singolo gruppo nel tuo file settings.xml ... – khmarbaise

risposta

3

È possibile forzare Maven a utilizzare un singolo repository facendolo eseguire il mirroring di tutte le richieste di repository. Il repository deve contenere tutti gli artefatti desiderati o essere in grado di delegare le richieste ad altri repository. Questa impostazione è particolarmente utile quando si utilizza un repository aziendale interno con Maven Repository Manager per il proxy delle richieste esterne.

Per ottenere ciò, impostare mirrorOf su *.

<settings> 
    ... 
    <mirrors> 
    <mirror> 
     <id>internal-repository</id> 
     <name>Maven Repository Manager running on repo.mycompany.com</name> 
     <url>http://repo.mycompany.com/proxy</url> 
     <mirrorOf>*</mirrorOf> 
    </mirror> 
    </mirrors> 
    ... 
</settings> 
più

dettagli here

speranza che questo aiuta.

+1

Questo è probabilmente il modo migliore per sbarazzarsi del problema, anche se non capisco perché ciò avvenga in primo luogo. –

1

Non è il download di esso più volte. Non è in grado di trovarlo nel primo repository, quindi sta tentando quello successivo nell'elenco <repositories/>.

+1

Ma 1) l'artefatto c'è e 2) Perché dice Downloaded per il repository che ha l'artefatto e non per gli altri? –

+0

CORREZIONE: questo log è stato preso da una build run con maven 2.2.x, questo potrebbe essere il motivo dell'intero problema. –

+0

Perché il downvote? Al down-voter: per favore, spiega. – carlspring

2

Se si guardano le informazioni del registro, si vedrà che non è stato scaricato più volte.

[INFO] Downloaded: https://p-nexus.mycompany.com/nexus/content/repositories/Myproject-group/aopalliance/aopalliance/1.0/aopalliance-1.0.jar (5 KB at 59.8 KB/sec) 

[INFO] Downloaded: https://p-nexus.mycompany.com/nexus/content/repositories/public/aopalliance/aopalliance/1.0/aopalliance-1.0.jar (0 B at 0.0 KB/sec) 

Come si può vedere, i loro percorsi sono diversi, anche se i file jar sono gli stessi e alla fine del secondo INFO, si dice 0 B at 0.0 KB/sec che significa, non è stato scaricato.

+0

Grazie, non l'avevo notato ed è probabilmente l'indizio della spiegazione. È ancora lo stesso artefatto ed è stato scaricato una volta, quindi perché il secondo tentativo? –

Problemi correlati