Wie kann ich ein git pull in Maven?
Ich bin neu sowohl maven und git und wollte um etwas Hilfe bei der Einstellung eines Projektes.
Gibt es eine Möglichkeit zu definieren, ein Ziel in der pom-push/pull aus dem git während der Verbindung mit einem maven-phase? Zum Beispiel kann ich aus dem git zu ziehen, während die maven-Installation phase?
Wenn ja, wie kann das erreicht werden? Ich würde schätzen, alle code-Beispiele.
- Warum möchten Sie zu schieben oder zu ziehen, während eine zu bauen? Klingt wie eine wirklich schlechte Idee.
- Es ist nicht wirklich ein zu bauen. Das Projekt enthält automatisierte tests. Und die Art, wie unser test-framework setup, wir ziehen das neueste framework-code zum ausführen der tests von Zeit zu Zeit.
- Vorausgesetzt, das ziehen wird fast-forward (keine merge-Auflösung benötigt), ist nicht nur mit "git pull repoName" dann "mvn Argumente" einfach genug? Wenn es nicht schnell voran, wie sollte maven umgehen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gute Idee ist oder nicht, ist hier, wie Sie das tun könnte, checkout (
ziehenKlon von Github) mit Maven. Haben Sie Ihre pom.xml Aussehen:Dann verwenden
mvn scm:checkout
. Wenn ich diese lief, zog es den code-Ordnertarget/engesoft
. Es gibt wohl eine Möglichkeit es zu konfigurieren, legen Sie es irgendwo anders. Schauen Sie sich die folgenden Seiten:Statt dies zu tun, während des Maven-build, verwenden Sie ein CI server wie Jenkins. Es wird
git pull
vor dem ausführen von maven, so dass das build-Werkzeug kann sich auf seine Hauptaufgabe: erstellen von Quellcode.Dies macht es auch einfacher für Sie zu entwickeln, da ziehen das wird nur passieren, wenn Sie Sie haben wollen. Wenn Sie ziehen alle die Zeit, die ein anderer Entwickler etwas ändern zu können und erhalten Sie Fehler, die Sie nicht erwarten.
Den scm:checkout Ziel Vitor meint das ist ein clone, kein ziehen (großer Unterschied im Git).
Hatte ich die Verwendung der exec-Ziel zu tun, was Sie beschreiben. Ich habe auch nicht das wollen einer ganzen Klon-jeder Zeit gab es einen bauen. Stattdessen verwende ich git reset --hard und dann pull-f origin Release:Release (via exec).
Wenn ich einen besseren Weg finden (und HAT es zu sein) werde ich es hier posten.