Was genau macht mvn install in maven?

Lesezeit: 4 Minuten

Benutzer-Avatar
Rajeshwar

Ich habe gerade angefangen, Maven zu benutzen, und mir wurde gesagt, ich solle es tun mvn install in einem bestimmten Verzeichnis.

Was macht mvn install tun, genau?

Ich denke, es sucht pom.xml im aktuellen Ordner und beginnt, den in dieser Datei angegebenen Anweisungen zu folgen. Ist das korrekt?

Benutzer-Avatar
einzigartig

Wie Sie vielleicht wissen, ist Maven ein von Apache bereitgestelltes Build-Automatisierungstool, das mehr als nur Abhängigkeitsverwaltung leistet. Wir können es als Peer von Ant und Makefile erstellen, das alle erforderlichen Abhängigkeiten herunterlädt.

Auf einen mvn installumrahmt es einen Abhängigkeitsbaum basierend auf der Projektkonfiguration pom.xml auf allen Unterprojekten unter dem super pom.xml (das Root-POM) und lädt/kompiliert alle benötigten Komponenten in ein Verzeichnis namens .m2 unter dem Ordner des Benutzers. Diese Abhängigkeiten müssen aufgelöst werden, damit das Projekt fehlerfrei erstellt werden kann, und mvn install ist ein Dienstprogramm, das die meisten Abhängigkeiten herunterladen kann.

Darüber hinaus gibt es in Maven andere Dienstprogramme wie z dependency:resolve die in bestimmten Fällen separat verwendet werden können. Der Build-Lebenszyklus der mvn ist wie folgt: LifeCycle-Bindungen

  1. process-resources
  2. compile
  3. process-test-resources
  4. test-compile
  5. test
  6. package
  7. install
  8. deploy

Die Testphase dieser mvn kann mit einem Flag ignoriert werden -DskipTests=true.

  • Nur eine Randnotiz, wenn Sie alle testbezogenen Ziele überspringen möchten, verwenden Sie: -Dmaven.test.skip=true (anstelle von -DskipTests=true)

    – Manoj Shrestha

    31. Mai 2016 um 18:58 Uhr


  • Diese Antwort verdeutlicht nicht, dass der Installationsbefehl letztendlich installiert das Artefakt lokal, d. h. im lokalen Repository.

    – PCH

    3. Juli 2020 um 18:07 Uhr


Haben Sie sich eine der Maven-Dokumentationen angesehen, zum Beispiel die Maven-Plugin-Installationsdokumente?

Kurzfassung: Es erstellt das Projekt und installiert es in Ihrem lokalen Repository.

  • Angenommen, Sie führen „mvn install“ in einer Open-Source-Bibliothek aus. Dann führen Sie „mvn install“ in einem Projekt aus, das die Open-Source-Bibliothek verwendet, die wir zuerst kompiliert haben. Werden JARs beim Ausführen von “mvn install” zuerst im lokalen Repo nachgeschlagen? Oder ist es abhängig von der POM-Datei?

    – Kevin Meredith

    19. Juni 2013 um 19:48 Uhr


  • @Kevin Es sollte zuerst lokal gehen, da das der Punkt ist. Wenn es sich nicht im lokalen Repository befindet, sucht es in allen von Ihnen konfigurierten Repositorys (oder den Standardeinstellungen) und installiert es in Ihrem lokalen Repository, wenn es gefunden wird. Ich vermute, Sie könnten es so konfigurieren, dass es das lokale Repo immer überspringt, obwohl ich nicht weiß, wie, ohne es nachzuschlagen.

    – David Newton

    19. Juni 2013 um 19:53 Uhr


  • Haben Sie die kanonischen Dokumente für Maven angeschaut? Die Apache-Site erklärt den Zweck von mvn install folgendermaßen: „In den meisten Fällen benötigt install:install Goal keine Konfiguration, es benötigt das POM des Projekts und die Artifact-Datei, die während der Installationsphase des Standard-Build-Lebenszyklus installiert werden.“ Weil das Apache-Dokument nicht erklärt, was „mvn install“ tatsächlich tut, suchen Leute wie das Poster und ich nach der Antwort. Vollkommen vernünftige Frage.

    – Bethesdaboys

    11. Juli 2013 um 11:15 Uhr

Das install:install Ziel wird von «Apache Maven Install Plugin» bereitgestellt:

Apache Maven-Installations-Plugin

Das Installations-Plugin wird während der Installationsphase verwendet, um Artefakte zum lokalen Repository hinzuzufügen. Das Installations-Plugin verwendet die Informationen im POM (groupId, artifactId, version), um den richtigen Speicherort für das Artefakt im lokalen Repository zu bestimmen.

Das lokale Repository ist der lokale Cache, in dem alle für den Build benötigten Artefakte gespeichert werden. Standardmäßig befindet es sich im Home-Verzeichnis des Benutzers (~/.m2/repository), aber der Speicherort kann in konfiguriert werden ~/.m2/settings.xml Verwendung der <localRepository> Element.

Apache Maven-Installations-Plugin – Einführung.

Abgesehen davon, das genaue Ziel:

install:install wird verwendet, um das Hauptartefakt des Projekts (das JAR, WAR oder EAR), sein POM und alle angehängten Artefakte (Quellen, Javadoc usw.), die von einem bestimmten Projekt erzeugt werden, automatisch zu installieren.

Apache Maven-Installations-Plugin – Einführung.

Weitere Einzelheiten zum Ziel entnehmen Sie bitte der Apache Maven-Installations-Plugin – install:install Seite.

Weitere Details zum Build-Lebenszyklus im Allgemeinen und dazu, welchen Platz das Ziel im Build-Lebenszyklus einnimmt, finden Sie in der Maven – Einführung in den Build-Lebenszyklus Seite.

Es führt alle Ziele aller konfigurierten Plugins aus, die mit einer beliebigen Phase des Standardlebenszyklus bis zur “Installationsphase” verbunden sind:

https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference

Benutzer-Avatar
Daniel Pernik

Kurze Antwort

mvn installieren

  • fügt alle Artefakte (Abhängigkeiten) hinzu, die in angegeben sind pomzum lokal Repository (aus entfernten Quellen).

  • Sie haben vergessen zu erwähnen, dass es auch das Projekt erstellt.

    – jurez

    1. Oktober 2020 um 5:11 Uhr

Benutzer-Avatar
Jyoti Prakash

-DskipTests=true ist Kurzform von -Dmaven.test.skip=true

Nehmen Sie Änderungen vor Einstellung.xml in deiner .m2 Mappe. Sie können einen Link zum lokalen Repo verwenden, damit die einmal heruntergeladenen JAR-Dateien nicht immer wieder heruntergeladen werden.

<url>file://C:/Users/admin/.m2/repository</url>
 </repository>

  • Sie haben vergessen zu erwähnen, dass es auch das Projekt erstellt.

    – jurez

    1. Oktober 2020 um 5:11 Uhr

Benutzer-Avatar
obul

In jeder Phase des Maven-Build-Lebenszyklus werden alle vorherigen Ziele ausgeführt.

Beispiel: mvn install ruft mvn validate, mvn compile, mvn test, mvn package usw. auf.

1353360cookie-checkWas genau macht mvn install in maven?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy