wake-up-neo.com

Wie verhindere ich, dass Maven jedes Mal Artefakte herunterlädt?

Ich verwende Maven 3.1.1. In einem meiner Projekte verweise ich auf ein anderes meiner Projekte…

    <dependencies>
            <dependency>
                    <groupId>org.mainco.subco</groupId>
                    <artifactId>myprojectA</artifactId>
                    <version>${project.version}</version>
            </dependency>

Das obige hängt von ein paar anderen meiner Projekte ab. Wenn ich jedoch "mvn clean install" ausführe, versucht Maven, diese Artefakte herunterzuladen, anstatt nur das zu verwenden, was sich in meinem lokalen Repository befindet. Wie bringe ich Maven dazu, nur Dinge herunterzuladen, die nicht in meinem lokalen Repository vorhanden sind? Hier ist die Ausgabe dessen, was ich sehe ...

davea$ mvn clean install
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building subco admin Module 57.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://download.Java.net/maven/2/org/mainco/subco/myprojectA/57.0.0-SNAPSHOT/maven-metadata.xml
Downloading: http://download.Java.net/maven/2/org/mainco/subco/subco/57.0.0-SNAPSHOT/maven-metadata.xml
Downloading: http://download.Java.net/maven/2/org/mainco/subco/projectB/57.0.0-SNAPSHOT/maven-metadata.xml
Downloading: http://download.Java.net/maven/2/org/mainco/subco/projectC/57.0.0-SNAPSHOT/maven-metadata.xml
[INFO]
40
Dave

Sie können die Aktualisierungshäufigkeit steuern, indem Sie Repositorys in der Datei $USER_HOME/.m2/settings.xml Konfigurieren. Ändern Sie insbesondere updatePolicy in einen Wert, der zu weniger häufigen Aktualisierungen führt.

Diese Stackoverflow-Antwort hat mehr Details.

23
user944849

Wenn Sie das Offline-Flag verwenden, werden Ihre Bibliotheken aus dem lokalen Repository verwendet.

mvn clean install -o 
68
jayalalk

Wenn Sie einige Jars aktualisieren möchten, aber nicht die Snapshots lokal installierter, sollten Sie das -nsu (--no-snapshot-updates) flag um zu verhindern, dass Maven den neuesten Snapshot aus dem Haupt-Repository abruft. Mit -o verhindert, dass andere Upgrades und (häufig) wichtige Maven-Jars aus Remote-Repositorys abgerufen werden.

6
Ian Turton

Nach meiner Erfahrung funktioniert nichts davon, wenn Maven "entschieden" hat, dass die Datei von einem bestimmten Server heruntergeladen werden muss.

Konfigurieren Sie updatePolicy als einen anderen Vorschlag. Um dies zu erreichen, müssen Sie jedoch in den Ordner im lokalen Repository wechseln, in dem sich die JAR-Datei befindet, und eine Datei mit dem Namen "_maven.repositories" löschen. Löschen Sie auch alle Dateien, die auf ".lastUpdated" enden. Auch "m2e-lastUpdated.properties", wenn Sie das Eclipse-Plugin verwenden.

1
Rober2D2

Sie können Repositorys in einrichten

settings.xml

datei von deinem maven installieren.

Weitere Informationen finden Sie auf der Maven-Konfiguration Webseite.

0
Leo