Usando maven-deploy-plugin

Y otro tema muy interesante es el despliegue automático del paquete ensamblado. Digamos que construimos nuestra propia biblioteca usando Maven. ¿Cómo lo enviamos automáticamente a un repositorio Maven local, corporativo o central?

Maven tiene un complemento especial maven-deploy-plugin para esto . Ejemplo:

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

Con esta configuración, puede enviar la biblioteca construida al repositorio de Maven como un paquete válido. No analizaremos este proceso en detalle, pero consideraremos brevemente lo que está sucediendo aquí:

La etiqueta de archivo especifica un archivo que se enviará al repositorio de Maven como una nueva biblioteca.

La etiqueta de URL es la ruta al repositorio de Maven (local/corporativo/…).

La etiqueta repositoryId especifica el identificador del repositorio en el que se realizará la implementación.

Las etiquetas groupId , artefactoId y versión definen la identificación del paquete estándar en el repositorio de Maven. Es por estos tres parámetros que una biblioteca puede identificarse de forma única.

La etiqueta de empaquetado se utiliza para garantizar que el resultado se envíe como un único archivo zip. Si no lo especifica, habrá un archivo jar, incluso si tiene varios archivos jar.

La etiqueta pomFile es opcional y le permite enviar otro pom.xml al repositorio que no contiene datos ocultos o generales.

Implementación de una aplicación web en Tomcat con Maven

El servidor web más popular para aplicaciones web Java es Apache Tomcat . Y, por supuesto, con la ayuda de Maven, puede implementar archivos war directamente en un servidor Tomcat local o incluso remoto.

Aprenderemos a instalar y configurar Tomcat más adelante, pero ahora solo tocaremos el tema de la implementación automática de nuestra aplicación web.

Paso uno. Necesitamos darle acceso a Maven al servidor Tomcat. Para hacer esto, abra el archivo conf/tomcat-users.xml en el directorio donde se descomprime Apache Tomcat y agregue los roles manager-gui y 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>

Segundo paso. Permita que Maven acceda a Tomcat. Para hacer esto, abra el archivo $MAVEN_HOME/conf/settings.xml y agregue el servidor:

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

Paso tres. Agregamos un complemento especial para la implementación automatizada de nuestra aplicación en Apache Tomcat. El complemento se llama tomcat7-maven-plugin . Por cierto, no fue creado por los desarrolladores de Maven, sino por los desarrolladores de Tomcat, como puede adivinar por el nombre.

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

En la sección de configuración, especifique:

  • url es la dirección donde se ejecuta Tomcat y la ruta al administrador/texto
  • servidor : ID del servidor del archivo settings.xml
  • ruta : la dirección donde estará disponible la aplicación implementada

Comandos de gestión de implementación:

mvn tomcat7: implementar Implementar la aplicación en Tomcat
mvn tomcat7: anular la implementación Eliminar aplicación de Tomcat
mvn tomcat7: redistribuir Vuelva a implementar la aplicación

Implementar con Cargo Plugin

Otro complemento útil y versátil para implementar aplicaciones web es Cargo Plugin . Sabe trabajar con diferentes tipos de servidores web. Aquí se explica cómo implementarlo en 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>

Para instalar la aplicación web en su Tomcat local, solo necesita ejecutar los comandos:

mvn install
mvn cargo:deploy

Si queremos implementar en un servidor web remoto, tendremos que configurar los derechos de acceso a este servidor. Para hacer esto, solo necesita registrarlos en 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>

Implementar con IntelliJ IDEA

Intellij IDEA hace todo el trabajo por sí mismo, todo lo que necesita es un Tomcat instalado .

Paso uno. Cree una configuración de Tomcat local:

Segundo paso. Luego seleccione el Tomcat local:

Paso tres. Configuración de Tomcat:

Paso cuatro. Agregue la ruta a la carpeta Tomcat.

Paso cinco. Agregamos nuestro proyecto como un artefacto a Tomcat.

Para hacer esto, vaya a la pestaña Despliegue y haga clic en el botón + a la derecha .

Eso es todo.

Por cierto, si necesita implementar en un servidor remoto, simplemente seleccione Remote Tomcat en el segundo paso.