2010-12-02 6 views
4

Ich habe ein Projekt, das Spring verwendet. Jedes Mal, wenn ich das Deployment ausführe, führe ich das Maven-Ziel "Paket" aus, das alle Tests ausführt und die WAR-Datei erstellt. Dann benutze ich manuell ein FTP-Programm, um die WAR-Datei auf den Server zu kopieren. Ich starte dann ein Bash-Skript, um den Server herunterzufahren, den Krieg zu ersetzen und den Server erneut zu starten.Was ist bei der Verwendung von Spring und Maven der beste Weg, den Code auf dem Server bereitzustellen?

Manchmal, wenn Änderungen am Datenbankschema vorgenommen werden, muss ich ein sql-Migrationsskript manuell ausführen.

Gibt es einen besseren Workflow, den ich verwenden kann? Da die Kriegsdatei des Projekts 60 MB beträgt, muss ich 10-12 Minuten warten, um sie auf den Server hochzuladen. Wenn ich merke, dass eine kleine Sache geändert werden muss, muss ich den ganzen Prozess noch einmal machen.

Es ist doppelt schlecht für mich, denn auf DSL, Upload-Bandbreite tötet Download-Bandbreite, so dass das Internet vollständig funktionsunfähig ist. Selbst das Arbeiten am Projekt und das Ausführen von Maven-Zielen ist langsam, da sie die Internetverbindung verwenden, um ständig nach Abhängigkeiten zu suchen.

Gibt es eine bessere Art zu arbeiten? Vielen Dank.

Antwort

1

Zunächst können Sie manuelle FTP-Kopien vermeiden, indem Sie das Maven Deploy-Plugin verwenden. können Sie finden ein How-to an dieser URL Projekte über ftp zu implementieren:

http://maven.apache.org/plugins/maven-deploy-plugin/examples/deploy-ftp.html

Zweiter Punkt eine Frage zu Ihrem Projekt ist: ist Ihre normale WAR Größe?
Ich habe von Konfigurationen gehört, die überflüssiges Glas eingebettet haben, um das Problem zu vermeiden, dass META-INF/spring.handlers beim Erstellen des endgültigen Gefäßes überschrieben werden. Wenn Sie in dieser Situation sind, können Sie von diesem auch interessieren:

http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html

+0

Nun, ich habe nichts dagegen nicht auf den Server hochzuladen. Ich glaube nicht, dass dieser manuelle Schritt wirklich das Problem ist. Was ich tun möchte, ist nicht, wenn ich kann, 60 MB überhaupt hochzuladen, besonders wenn ich nur 2KB Änderungen mache. Gibt es eine Möglichkeit, die Quelle und den Server zu synchronisieren und einen Build auf dem Server selbst durch Maven zu erstellen? – egervari

+0

Nun, ich glaube nicht, dass Sie einen Build auf dem Server erstellen können, wenn Sie keinen SSH-Zugriff darauf haben. Ich kenne Spring überhaupt nicht, aber es scheint möglich, Webapp-Teile zu aktualisieren, wenn Sie Tomcat verwenden (http://www.tomcatexpert.com/knowledge-base/deploying-exploded-war-files). Wenn dies der Fall ist, können Sie diese getrennten Dateien mit maven deploy bereitstellen. – jopasserat

Verwandte Themen