Crear un JAR con dependencias con Apache Maven

JAR con dependencias

¿Qué es un JAR con dependencias?

Un requisito típico de los proyectos es agregar la salida junto con sus dependencias, módulos y otros archivos en un solo archivo distribuible.

 

Un uber-JAR, también conocido como fat-JAR o JAR con dependencias, es un archivo JAR que no solo contiene un programa Java o Scala, sino que también incorpora sus dependencias. Esto significa que el JAR funciona como una distribución “todo en uno” del software.

Existen tres métodos comunes para construir un JAR con dependencias:

  • Unshaded: Descomprime todos los archivos JAR y luego vuelve a empaquetarlos en un único JAR.
  • JAR de JARs: El archivo JAR final contiene los otros archivos JAR integrados.
  • Shaded: Igual que Unshaded, pero renombra, es decir,  realiza un «shade» de todos los paquetes de todas las dependencias.

El plugin Maven Shade

En este artículo vamos a ver el método Shaded. Para ello vamos a emplear el plugin Maven Shade. Este plugin brinda la capacidad de empaquetar el artefacto en un uber-jar, incluidas sus dependencias y cambiar el nombre de los paquetes de algunas de las dependencias.

 

El plugin Shade tiene un solo goal shade:shade que está vinculado a la fase package y se usa para crear un shaded JAR.

Para crear el JAR con dependencias será necesario incluir en el archivo pom.xml del proyecto dentro de la sesión del build la siguiente configuración del Maven Shade Plugin.

				
					<build>

    <plugins>

      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>3.4.1</version>
          <configuration>
            <!-- Ponga sus configuraciones aquí -->
          </configuration>
          <executions>
            <execution>
              <phase>package</phase>
              <goals>
                <goal>shade</goal>
              </goals>
            </execution>
          </executions>
      </plugin>

    </plugins>

  </build>
				
			

Apache Maven: Construcción de proyectos de cero a avanzado

Aprenda a construir sus aplicaciones Java y Scala de forma sencilla y siguiendo las mejores prácticas de desarrollo.

Una vez que hallamos agregado el plugin a la sesión del build podemos personalizar las diferentes configuraciones que deseemos dentro de la etiqueta configuration. Para obtener más detalles sobre esta configuración pueden dirigirse a la página oficial de Maven Shade Plugin.

Lo que resta ahora es ir desde un terminal a la carpeta del proyecto y ejecutar el comando

mvn package

Lo que sucederá a continuación es que Maven comenzará a empaquetar nuestro proyecto y creará un JAR con dependencias, que para este caso será un shaded JAR.

Hasta aquí hemos visto com poder crear un JAR con dependencias con el plugin Maven Shade Plugin. Si deseas conocer más sobre la construcción de proyectos Java o Scala siguiendo las mejores prácticas de desarrollo y con ejemplos prácticos te invito a que te inscribas a mi curso Apache Maven: Construcción de proyectos de cero a avanzado, donde cubrimos a detalle el funcionamiento de Apache Maven y cómo emplearlo para construir y manejar de forma sencilla tus proyectos.

Entradas creadas 25

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Publicaciones relacionadas

Comienza escribiendo tu búsqueda y pulsa enter para buscar. Presiona ESC para cancelar.

Volver arriba