Verwenden von maven-deploy-plugin

Und ein weiteres sehr interessantes Thema ist die automatische Bereitstellung des zusammengestellten Pakets. Nehmen wir an, wir haben mit Maven unsere eigene Bibliothek erstellt. Wie können wir es automatisch in ein lokales, unternehmensweites oder zentrales Maven-Repository verschieben?

Maven hat hierfür ein spezielles Maven-Deploy-Plugin- Plugin . Beispiel:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-deploy-plugin</artifactId>
    	<version>2.5</version>
    	<configuration>
          <file>${project.build.directory}\${project.artifactId}-src.zip</file>
          <url>${project.distributionManagement.repository.url}</url>
          <repositoryId>${project.distributionManagement.repository.id}</repositoryId>
          <groupId>${project.groupId}</groupId>
          <artifactId>${project.artifactId}</artifactId>
          <version>${project.version}</version>
      	  <packaging>zip</packaging>
          <pomFile>pom.xml</pomFile>
    	</configuration>
  	</plugin>

Mit diesen Einstellungen können Sie die erstellte Bibliothek als gültiges Paket in das Maven-Repository übertragen. Wir werden diesen Prozess nicht im Detail analysieren, sondern kurz betrachten, was hier passiert:

Das Datei- Tag gibt eine Datei an, die als neue Bibliothek in das Maven-Repository übertragen wird.

Das URL- Tag ist der Pfad zum Maven-Repository (local/corporate/…).

Das Tag „RepositoryId“ gibt die Kennung des Repositorys an, in dem die Bereitstellung erfolgen soll.

Die Tags „groupId“ , „artifactId“ und „ version “ definieren die Standardpaketidentifikation im Maven-Repository. Anhand dieser drei Parameter kann eine Bibliothek eindeutig identifiziert werden.

Mithilfe des Verpackungs- Tags wird sichergestellt, dass das Ergebnis als einzelne ZIP-Datei gesendet wird. Wenn Sie es nicht angeben, gibt es eine JAR-Datei, auch wenn Sie mehrere JAR-Dateien hatten.

Das pomFile- Tag ist optional und ermöglicht es Ihnen, eine weitere pom.xml an das Repository zu senden, die keine versteckten oder Overhead-Daten enthält.

Bereitstellen einer Webanwendung für Tomcat mithilfe von Maven

Der beliebteste Webserver für Java-Webanwendungen ist Apache Tomcat . Und natürlich können Sie mit Hilfe von Maven Kriegsdateien direkt auf einem lokalen oder sogar Remote-Tomcat-Server bereitstellen.

Wir werden irgendwann später lernen, wie man Tomcat installiert und konfiguriert, aber jetzt werden wir nur auf das Thema der automatischen Bereitstellung unserer Webanwendung eingehen.

Schritt eins. Wir müssen Maven Zugriff auf den Tomcat-Server gewähren. Öffnen Sie dazu die Datei conf/tomcat-users.xml in dem Verzeichnis, in dem Apache Tomcat entpackt ist, und fügen Sie die Rollen manager-gui und manager-script hinzu :

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <user username="admin" password="admin" roles="manager-gui,manager-script" />
</tomcat-users>

Schritt zwei. Erlauben Sie Maven-Zugriff auf Tomcat. Öffnen Sie dazu die Datei $MAVEN_HOME/conf/settings.xml und fügen Sie den Server hinzu:

<?xml version="1.0" encoding="UTF-8"?>
<settings ...>
  <servers>
	<server>
  	<id>TomcatServer</id>
  	<username>admin</username>
  	<password>admin</password>
	</server>
  </servers>
</settings>

Schritt drei. Wir fügen ein spezielles Plugin für die automatisierte Bereitstellung unserer Anwendung zu Apache Tomcat hinzu. Das Plugin heißt tomcat7-maven-plugin . Es wurde übrigens nicht von den Maven-Entwicklern, sondern von den Tomcat-Entwicklern erstellt, wie der Name schon vermuten lässt.

	<build>
    	<plugins>
        	<plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
            	<configuration>
                    <url>http://localhost:8080/manager/text</url>
                    <server>TomcatServer</server>
                	<path>/simpleProject</path>
            	</configuration>
        	</plugin>
    	</plugins>
	</build>

Geben Sie im Konfigurationsabschnitt Folgendes an:

  • URL ist die Adresse, unter der Tomcat ausgeführt wird, und der Pfad zu Manager/Text
  • server – Server-ID aus der Datei „settings.xml“ .
  • Pfad – die Adresse, unter der die bereitgestellte Anwendung verfügbar sein wird

Befehle für die Bereitstellungsverwaltung:

mvn tomcat7:deploy Stellen Sie die Anwendung für Tomcat bereit
mvn tomcat7:undeploy Entfernen Sie die Anwendung von Tomcat
mvn tomcat7:redeploy Stellen Sie die Anwendung erneut bereit

Bereitstellung mit dem Cargo-Plugin

Ein weiteres nützliches und vielseitiges Plugin für die Bereitstellung von Webanwendungen ist das Cargo-Plugin . Er weiß, wie man mit verschiedenen Arten von Webservern arbeitet. So stellen Sie es in Apache Tomcat bereit:

<build>
    <plugins>
    	<plugin>
            <groupId>org.codehaus.cargo</groupId>
            <artifactId>cargo-maven2-plugin</artifactId>
        	<version>1.9.10</version>
        	<configuration>
            	<container>
                	<containerId>tomcat8x</containerId>
                    <type>installed</type>
                	<home>Insert absolute path to tomcat 7 installation</home>
            	</container>
            	<configuration>
                    <type>existing</type>
                    <home>Insert absolute path to tomcat 7 installation</home>
            	</configuration>
        	</configuration>
   	    </plugin>
    </plugins>
</build>

Um die Webanwendung auf Ihrem lokalen Tomcat zu installieren, müssen Sie nur die folgenden Befehle ausführen:

mvn install
mvn cargo:deploy

Wenn wir die Bereitstellung auf einem Remote-Webserver durchführen möchten, müssen wir Zugriffsrechte für diesen Server einrichten. Dazu müssen Sie sie lediglich in pom.xml registrieren :

<configuration>
	<container>
        <containerId>tomcat8x</containerId>
    	<type>remote</type>
	</container>
	<configuration>
    	<type>runtime</type>
    	<properties>
            <cargo.remote.username>admin</cargo.remote.username>
            <cargo.remote.password>admin</cargo.remote.password>
        	<cargo.tomcat.manager.url>http://localhost:8080/manager/text</cargo.tomcat.manager.url>
    	</properties>
	</configuration>
</configuration>

Bereitstellen mit IntelliJ IDEA

Intellij IDEA erledigt die ganze Arbeit selbst, Sie benötigen lediglich einen installierten Tomcat .

Schritt eins. Erstellen Sie eine lokale Tomcat-Konfiguration:

Schritt zwei. Wählen Sie dann den lokalen Tomcat aus:

Schritt drei. Tomcat konfigurieren:

Schritt vier. Fügen Sie den Pfad zum Tomcat-Ordner hinzu.

Schritt fünf. Wir fügen unser Projekt als Artefakt zu Tomcat hinzu.

Gehen Sie dazu auf die Registerkarte „Bereitstellung“ und klicken Sie rechts auf die Schaltfläche „+“ .

Das ist alles.

Wenn Sie übrigens eine Bereitstellung auf einem Remote-Server benötigen, wählen Sie im zweiten Schritt einfach Remote Tomcat aus.