15 Stimmen

Nur Diffs in einer Webapp mit Maven auf einem entfernten Server bereitstellen

Ich verwende cargo:deploy mit Maven, um Anwendungen auf Servern bereitzustellen. Das funktioniert gut, aber ich habe kürzlich versucht, CloudBees zu verwenden. Sie haben ein ähnliches Plugin für ihre Infrastruktur. Allerdings werden damit nur die Unterschiede zwischen der alten und der neuen WAR bereitgestellt, so dass es deutlich schneller ist. Während ich für cargo:deploy 4 bis 6 Minuten benötige, dauert die Methode von CloudBees weniger als eine Minute.

Gibt es irgendwelche Plugins für Maven, die es mir erlauben, nur meine Änderungen auf meinem eigenen App-Server zu verteilen? Im Moment verwende ich Tomcat, würde aber einen Wechsel des Anwendungsservers in Betracht ziehen, wenn es eine gute Lösung für etwas anderes gäbe.

2voto

Stephen Connolly Punkte 13565

Sie benötigen eine serverseitige Unterstützung für den Empfang des Deltas, und hier kommen wir (cloudbees) ins Spiel, um unsere Geheimwaffe einzusetzen.

Sie benötigen einen Bereitstellungsdienst auf dem Zielserver, der das hochgeladene Delta-Format versteht.

In mancher Hinsicht ist das gar nicht so schwierig... Das War hat eingebaute Prüfsummen, wenn also ein Eintrag im War den gleichen Pfad, die gleiche letzte Änderung, den gleichen Crc und die gleiche Größe hat, dann ist er ein guter Kandidat für den Ausschluss aus dem Delta. Man nimmt also einen oder zwei sicherere Hashes (sha-256 und md5 zum Beispiel, um sie verschiedenen Funktionen zum Vergleich zu geben) und wenn diese Hashes gleich sind! Aus dem Delta ausschließen.

Eine schicke Tomcat-Deployer-Webanwendung könnte eine solche Bereitstellung unterstützen, aber Sie würden sie für die Produktion sperren wollen, aber warum sollten Sie selbst hosten, wenn Sie GSETDIFY

0voto

emas Punkte 648

Wenn Sie nur an Tomcat interessiert sind, können Sie die Tomcat-Plugin für Maven

Es ist nicht schwer zu konfigurieren, überprüfen Sie einfach die Anwendungsurl des Tomcat-Managers, da sie von Tomcat 6 (http://tomcat\_server:8080/manager/) auf Tomcat 7 (http://tomcat\_server:8080/manager/html) geändert wurde.

Das Plugin wird nach der "Paket"-Erstellungsphase ausgeführt, d.h. es stellt das erzeugte War direkt auf einem entfernten Server bereit, auf dem Tomcat läuft.

0voto

Solubris Punkte 3503

Ich stelle fest, dass ich nach einigen Frachtverteilungen Fehler wegen Speichermangels auf dem Server erhalte. Sie könnten die maven wagon ssh Erweiterung verwenden. Sie könnte auf der Grundlage des erweiterten War hochgeladen werden. Hier ist das Dokument zur Verwendung:

http://mojo.codehaus.org/wagon-maven-plugin/usage.html

Aber ich bin mir nicht sicher, wie man es dazu bringt, nur geänderte Dateien hochzuladen. Bei ant gab es eine Dateicache-Komponente, die die Prüfsumme der Dateien zwischenspeichert und nur dann neu hochlädt, wenn sich die Prüfsumme geändert hat.

Selbst wenn Sie die Dateien hochgeladen haben, kann ein Neustart erforderlich sein, da Tomcat nicht sehr gut mit Hot-Deployments zurechtkommt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X