Automatisiertes Deployment mit Maven

Während der Projektentwicklung umfasst der Deployment-Prozess die folgenden Schritte:

  • Committen Sie den gesamten Projektcode in SVN oder ein Code-Repository und taggen Sie ihn.
  • Laden Sie den vollständigen Quellcode von SVN herunter.
  • Erstellen Sie die Anwendung.
  • Speichern Sie die erstellten WAR- oder EAR-Dateien an einem gemeinsamen Netzwerkspeicherort.
  • Rufen Sie die Dateien aus dem Netzwerk ab und stellen Sie sie in der Produktionsumgebung bereit.
  • Aktualisieren Sie die Dokumentation und aktualisieren Sie die Versionsnummer der Anwendung.

Problembeschreibung

Normalerweise umfasst der oben genannte Entwicklungsprozess mehrere Teams. Ein Team kann für das Committen von Code verantwortlich sein, ein anderes für das Erstellen usw. Es ist sehr wahrscheinlich, dass jeder Schritt aufgrund der manuellen Vorgänge und der beteiligten Multi-Team-Umgebung fehlschlagen kann. Zum Beispiel wird eine ältere Version auf dem Netzwerkrechner nicht aktualisiert, und dann stellt das Deployment-Team eine frühere Build-Version erneut bereit.

Lösung

Erzielen Sie eine automatisierte Bereitstellung durch die Kombination der folgenden Ansätze:

  • Verwenden Sie Maven, um Projekte zu bauen und zu veröffentlichen.
  • Verwenden Sie SubVersion, das Quellcode-Repository, um den Quellcode zu verwalten.
  • Verwenden Sie Remote-Repository-Management-Software (Jfrog oder Nexus), um binäre Projektdateien zu verwalten.

Ändern Sie die pom.xml des Projekts.

Wir werden das Maven Release Plugin verwenden, um einen automatisierten Release-Prozess zu erstellen.

Beispielsweise sieht die pom.xml-Datei für das Projekt bus-core-api wie folgt aus:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>bus-core-api</groupId> <artifactId>bus-core-api</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <scm> <url>http://www.svn.com</url> <connection>scm:svn:http://localhost:8080/svn/jrepo/trunk/ Framework</connection> <developerConnection>scm:svn:${username}/${password}@localhost:8080: common_core_api:1101:code</developerConnection> </scm> <distributionManagement> <repository> <id>Core-API-Java-Release</id> <name>Release-Repository</name> <url>http://localhost:8081/nexus/content/repositories/ Core-Api-Release</url> </repository> </distributionManagement> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>2.0-beta-9</version> <configuration> <useReleaseProfile>false</useReleaseProfile> <goals>deploy</goals> <scmCommentPrefix>[bus-core-api-release-checkin]-< /scmCommentPrefix> </configuration> </plugin> </Plugins> </Build> </Projekt>

Einige wichtige Elementknoten, die häufig in der pom.xml-Datei verwendet werden, sind in der folgenden Tabelle aufgeführt:

Elementknoten Beschreibung
SCM Konfigurieren Sie den SVN-Pfad, von dem Maven den Code abruft.
repository Der Speicherort der erstellten WAR-, EAR- oder JAR-Dateien oder der Speicherort anderer Artefakte, die nach einem erfolgreichen Quellcode-Build generiert wurden.
Plugin Konfigurieren Sie das maven-release-plugin-Plugin, um den automatisierten Deployment-Prozess umzusetzen.

Maven Release Plugin

Maven verwendet das maven-release-plugin-Plugin, um die folgenden Aufgaben auszuführen.

mvn release:clean

Bereinigen Sie den Workspace, um sicherzustellen, dass der neueste Release-Prozess erfolgreich abläuft.

mvn release:rollback

Wenn der vorherige Release-Prozess fehlgeschlagen ist, setzen Sie den geänderten Workspace-Code und die Konfiguration zurück, um sicherzustellen, dass der Release-Prozess erfolgreich verläuft.

mvn release:prepare

Führen Sie verschiedene Operationen aus:

  • Prüfen Sie, ob lokal nicht committete Änderungen vorhanden sind
  • Stellen Sie sicher, dass keine Snapshot-Abhängigkeiten vorhanden sind
  • Ändern Sie die Versionsinformationen der Anwendung für das Release
  • Aktualisieren Sie POM-Dateien in SVN
  • Testfälle ausführen
  • Committen Sie die geänderten POM-Dateien
  • Taggen Sie den Code in SVN
  • Erhöhen Sie die Versionsnummer und hängen Sie einen Snapshot für zukünftige Releases an
  • Committen Sie die geänderten POM-Dateien in SVN
mvn release:perform

Wechseln Sie den Code zum zuvor getaggten Speicherort, führen Sie das Maven-Deploy-Ziel aus, um die WAR-Datei zu deployen oder die entsprechenden Artefakte in das Repository zu bauen.

Öffnen Sie ein Kommandozeilen-Terminal, navigieren Sie zum Verzeichnis C:\ > MVN >bus-core-api und führen Sie dann den folgenden mvn-Befehl aus.

C:\MVN\bus-core-api>mvn release:prepare

Maven beginnt mit dem Erstellen des gesamten Projekts. Nach einem erfolgreichen Build können Sie den folgenden mvn-Befehl ausführen.

C:\MVN\bus-core-api>mvn release:perform

Nach einem erfolgreichen Build können Sie überprüfen, ob die hochgeladene JAR-Datei in Ihrem Repository wirksam ist.

Andere Erweiterungen