Gibt es eine Maven-Befehlszeilenoption für den Offline-Modus?

80

Sie können in Ihrer Maven- Einstellungsdatei angeben, dass Sie im Offline-Modus ausgeführt werden möchten. Gibt es jedoch eine entsprechende Befehlszeilenoption?

Ich würde mir so etwas wie zB vorstellen

mvn install -Dmaven.offline.true
Joel
quelle

Antworten:

168

Geben Sie den Offline-Modus über -o/ an --offline:

mvn -o install

Maven Buchreferenz

Dave Newton
quelle
und Sie können das finden von mvn -h:)
ipolevoy
20

Der Offline-Modus von Maven wird mit aufgerufen mvn -o.

Dies allein reicht jedoch möglicherweise nicht aus, da das aktuelle Projekt manchmal auf Artefakte verweist, die noch nicht im lokalen Maven-Repository-Cache vorhanden sind ( ~/.m2/repository). Der Versuch, dieses Projekt im Offline-Modus zu erstellen, schlägt fehl, da die erforderlichen Abhängigkeiten fehlen und nicht heruntergeladen werden können.

Es gibt also noch ein weiteres nützliches Ziel:

mvn dependency:go-offline

Dies ist ein großartiger Befehl, den Sie ausführen müssen, bevor Sie in ein Flugzeug steigen, um Ihre Chancen zu verbessern BUILD SUCCESS. Weitere Informationen finden Sie in der Go-Offline-Dokumentation .

ctrueden
quelle
18

Nur ein einfaches:

mvn --offline

In Zukunft empfehle ich, sich darauf zu beziehen mvn --help.

khmarbaise
quelle
5

mvn -oFunktioniert in den meisten Fällen, reicht jedoch in einigen Fällen nicht aus, da ab Maven 3 ein heruntergeladenes Artefakt aus einem Remote- / Zentral-Repository eine _remote.repositoriesDatei in Ihrem lokalen Repository mit einem Verweis darauf erstellt, wo die Abhängigkeit heruntergeladen wurde.
Dies kann zu Problemen führen, wenn Sie später während Ihrer Builds keinen Zugriff auf dieses Remote-Repository haben.
Eine Problemumgehung, die möglicherweise funktioniert, ist die Verwendung mvn -o -llr yourGoal.

Aus der Hilfedokumentation:

 -llr, - Legacy-Local-Repository Verwenden Sie Maven 2 Legacy Local
                                        Repository-Verhalten, dh keine Verwendung von
                                        _remote.repositories. Kann auch sein
                                        aktiviert mit
                                        -Dmaven.legacyLocalRepo = true

 -o, - offline Offline arbeiten

Eine andere Möglichkeit, mvn offline auszuführen, besteht darin, diese _remote.repositoriesMetadaten zu löschen, die im Verzeichnis der heruntergeladenen Abhängigkeiten gespeichert sind.

davidxxx
quelle
3

Versuchen Sie -o oder sogar --help, um Hilfe bei allen Optionen zu erhalten

Vickirk
quelle