2014-10-06 18 views
12

Ich möchte wissen, was genau Maven in der Phase -U tun.Wie genau funktioniert mvn -U?

Das Argument ordering erzwingt die Suche nach Updates auf Remote-Repositories und aktualisiert bei Bedarf das lokale Maven-Repository mit den aktualisierten Abhängigkeiten, die in unserem Projekt verwendet werden.

Wie beschrieben:

-U --update-snapshots Forces a check for updated releases and snapshots on remote repositories 

Aber wie genau geschieht dies? Ist Maven zunächst alle Remote-Repositories herunterladen und lokal entscheidet, dass sie aktualisiert werden müssen, oder entscheiden, ohne sie zuerst herunterzuladen? Gibt es einige Eckfälle, die bekannt sein sollten?

Meine Maven Version ist:

Apache Maven 3.2.2 (45f7c06d68e745d05611f7fd14efb6594181933e; 2014-06-17T16:51:42+03:00) 
Maven home: /usr/local/Cellar/maven/3.2.2/libexec 
Java version: 1.7.0_60, vendor: Oracle Corporation 
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "mac os x", version: "10.9.4", arch: "x86_64", family: "mac" 

Antwort

10

Es ist nur für die Artefakte oder Abhängigkeiten von Ihrem Projekt verwiesen erfolgt.

Der letzte Überprüfungszeitstempel wird in lokalen Artefaktmetadaten (in Ihrem lokalen Maven-Repository) gespeichert, sodass Maven verschiedene Strategien anwenden kann, um auf dieser Basis nach Updates zu suchen. Das Standardaktualisierungsintervall für Snapshots ist "täglich".

Siehe auch updatePolicy für Remote-Repositories in Maven's settings.xml.

+0

Danke Eugene. Ich bin mir immer noch nicht sicher, wie genau die Suche nach Updates erfolgt. Kannst du bitte etwas ausarbeiten? – Stas

+6

Die Updates werden überprüft, indem eine HTTP-Anfrage für jedes Artefakt an das Remote-Maven-Repository gesendet und dann der Artefakt-Zeitstempel mit Maven's lokalem Artefakt-Cache (aka lokales Maven-Repository) verglichen wird. –

+0

Großartig, genau das wollte ich wissen. – Stas

Verwandte Themen