Korzystanie z wtyczki maven-deploy

Kolejnym bardzo ciekawym tematem jest automatyczne wdrażanie złożonego pakietu. Załóżmy, że zbudowaliśmy własną bibliotekę za pomocą Maven. W jaki sposób automatycznie przekazujemy go do lokalnego, korporacyjnego lub centralnego repozytorium Maven?

Maven ma do tego specjalną wtyczkę maven-deploy-plugin . Przykład:

    <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>

Dzięki tym ustawieniom możesz wypchnąć zbudowaną bibliotekę do repozytorium Maven jako prawidłowy pakiet. Nie będziemy szczegółowo analizować tego procesu, ale krótko rozważymy, co się tutaj dzieje:

Znacznik pliku określa plik, który zostanie wypchnięty do repozytorium Maven jako nowa biblioteka.

Tag url to ścieżka do repozytorium Maven (lokalne/korporacyjne/…).

Znacznik repositoryId określa identyfikator repozytorium, do którego zostanie wykonane wdrożenie.

Znaczniki groupId , artefactId , version definiują standardową identyfikację pakietu w repozytorium Maven. To dzięki tym trzem parametrom można jednoznacznie zidentyfikować bibliotekę.

Tag opakowania służy do zapewnienia, że ​​wynik zostanie wysłany jako pojedynczy plik ZIP. Jeśli go nie określisz, będzie jeden plik jar, nawet jeśli masz kilka plików jar.

Znacznik pomFile jest opcjonalny i umożliwia wysłanie do repozytorium kolejnego pliku pom.xml, który nie zawiera danych ukrytych ani narzutowych.

Wdrażanie aplikacji internetowej na Tomcat przy użyciu Maven

Najpopularniejszym serwerem WWW dla aplikacji internetowych Java jest Apache Tomcat . I oczywiście z pomocą Mavena możesz wdrażać pliki wojenne bezpośrednio na lokalnym, a nawet zdalnym serwerze Tomcat.

Instalacji i konfiguracji Tomcata nauczymy się później, ale teraz poruszymy tylko temat automatycznego wdrażania naszej aplikacji internetowej.

Krok pierwszy. Musimy dać Mavenowi dostęp do serwera Tomcat. W tym celu otwórz plik conf/tomcat-users.xml w katalogu, w którym został rozpakowany Apache Tomcat i dodaj role manager-gui i manager-script :

<?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>

Krok drugi. Zezwól Mavenowi na dostęp do Tomcata. W tym celu otwórz plik $MAVEN_HOME/conf/settings.xml i dodaj serwer:

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

Krok trzeci. Dodajemy specjalną wtyczkę do automatycznego wdrażania naszej aplikacji na Apache Tomcat. Wtyczka nazywa się tomcat7-maven-plugin . Nawiasem mówiąc, został stworzony nie przez programistów Maven, ale przez programistów Tomcat, jak można się domyślić z nazwy.

	<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>

W sekcji konfiguracji określ:

  • url to adres, pod którym działa Tomcat, oraz ścieżka do menedżera/tekstu
  • serwer - identyfikator serwera z pliku settings.xml
  • path - adres, pod którym będzie dostępna wdrożona aplikacja

Polecenia zarządzania wdrożeniem:

mvn tomcat7: wdrażanie Wdróż aplikację na Tomcat
mvn tomcat7: anuluj wdrażanie Usuń aplikację z Tomcata
mvn tomcat7: ponowne wdrożenie Ponownie wdróż aplikację

Wdróż z wtyczką Cargo

Kolejną przydatną i wszechstronną wtyczką do wdrażania aplikacji internetowych jest wtyczka Cargo . Wie, jak pracować z różnymi typami serwerów WWW. Oto jak wdrożyć go w Apache Tomcat:

<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>

Aby zainstalować aplikację internetową na lokalnym Tomcacie, wystarczy uruchomić polecenia:

mvn install
mvn cargo:deploy

Jeśli chcemy przeprowadzić wdrożenie na zdalnym serwerze internetowym, będziemy musieli skonfigurować prawa dostępu do tego serwera. Aby to zrobić, wystarczy zarejestrować je w pom.xml :

<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>

Wdróż z IntelliJ IDEA

Intellij IDEA wykonuje całą pracę sam, wszystko czego potrzebujesz to zainstalowany Tomcat .

Krok pierwszy. Utwórz lokalną konfigurację Tomcat:

Krok drugi. Następnie wybierz lokalnego Tomcata:

Krok trzeci. Konfigurowanie Tomcata:

Krok czwarty. Dodaj ścieżkę do folderu Tomcat.

Krok piąty. Dodajemy nasz projekt jako artefakt do Tomcata.

W tym celu przejdź do zakładki Wdrożenie i kliknij przycisk + po prawej stronie .

To wszystko.

Nawiasem mówiąc, jeśli chcesz przeprowadzić wdrożenie na zdalnym serwerze, po prostu wybierz Remote Tomcat w drugim kroku.