Mein Team verwendet ein internes Team-Maven-Repo, das von einem Entwicklungsserver mit Apache gemeinsam genutzt wird. Wir führen auch den Continuum CI-Server auf demselben Computer aus. Maven-Builds in Continuum werden mit dem Ziel "install" ausgeführt, das das endgültige Artefakt direkt in das freigegebene Verzeichnis kopiert.
Die Frage ist, was ist der Unterschied zwischen dem Hinzufügen von Dateien zum freigegebenen Repo mvn install
mithilfe des Bereitstellungsziels (mvn-deploy-Plugin)?
Es scheint mir, dass die Verwendung mvn deploy
zusätzliche Konfigurationsprobleme verursacht, aber ich habe irgendwo gelesen, dass die Installation von Dateien in einem gemeinsam genutzten Repo aus irgendeinem Grund im Zusammenhang mit der internen Funktionsweise von maven eine schlechte Idee ist.
Update: Ich bekomme die funktionalen Unterschiede zwischen deploy
und install
; Ich interessiere mich eigentlich mehr für die Details auf niedriger Ebene in Bezug darauf, welche Dateien im Maven-Repo erstellt werden.
mvn deploy
? Welche Vorteile bietet es für die zusätzliche Konfiguration, die überhaupt erforderlich war?Aus den Maven-Dokumenten geht hervor , dass es nur ein Unterschied ist, in welchem Repository Sie das Paket installieren:
Vielleicht gibt es einige Verwirrung darin, dass "Installation" auf dem CI-Server es in seinem lokalen Repository installiert, das Sie als Benutzer dann teilen?
quelle
"matt b" hat es richtig, aber um genau zu sein, kopiert das "install" -Ziel Ihr erstelltes Ziel in das lokale Repository auf Ihrem Dateisystem. Nützlich für kleine Änderungen in Projekten, die derzeit nicht für die gesamte Gruppe bestimmt sind.
Das Ziel "Bereitstellen" lädt es in Ihr freigegebenes Repository hoch, wenn Ihre Arbeit beendet ist, und kann dann von anderen Personen freigegeben werden, die es für ihr Projekt benötigen.
In Ihrem Fall scheint es , dass „Install“ verwendet wird , um die Verwaltung der Bereitstellung einfacher zu machen , da lokale Repo - CI ist das gemeinsame Repo. Wenn sich CI auf einer anderen Box befindet, muss das Ziel "Bereitstellen" verwendet werden.
quelle