Crear un JAR ejecutable con dependencias incluidas en Java

0
1657

Este artículo me lo han pedido una gran cantidad de veces. Alguna vez escribí sobre como incluir dependencias dentro de un JAR, pero aquel método no me gusta. Tiende a fallar a veces.

Cuando escribí aquel artículo aún no sabía o no tenía la costumbre de utilizar Maven en mis proyectos. Maven es un gestor de repositorios, extremadamente útil, que hará de tu vida programando en Java una experiencia mucho más sencilla.

Veamos un ejemplo de por qué y para qué se debe utilizar Maven. Cuando se crea un proyecto en Maven, este se diferencia de un proyecto Java común y corriente por la construcción interna del árbol de proyectos. 

Diferencias entre un crear un proyecto Maven y un proyecto Java en Netbeans

Cuando se crea un proyecto en Maven, en la raíz se encuentra un archivo llamado pom.xml. En dicho archivo se establecen algunos parámetros básicos del proyecto, como el nombre, la versión, la clase principal, entre otros. También se establecen las dependencias y repositorios que se van a utilizar. Esta característica es especialmente útil, puesto que solo basta con escribir el nombre del repositorio o la dependencia que necesitas y Maven lo descargará e instalará automáticamente.

Por ejemplo, la librería PanamaHitek_Arduino puede ser descargada e instalada fácilmente agregando las solamente unas cuantas líneas de texto al archivo pom. Lo mismo aplica a casi cualquier repositorio de Java hoy por hoy.

Si queremos agregar la librería JFreeCharts, para hacer gráficas, agregamos lo siguiente al pom:

Maven es muy sencillo de utilizar. Facilita tu vida y te permite llevar un orden en los repositorios que utilizas.

Creando JAR ejecutable con Maven

Otra característica importante de Maven es la capacidad de crear ficheros JAR ejecutables a través de la inclusión de todas las dependencias dentro de un solo archivo. Para ello basta con agregar las siguientes instrucciones al archivo pom:

Solo basta con modificar las líneas de NOMBRE_DEL_PROYECTO y establecer correctamente la clase principal. Estas instrucciones deben agregarse al final del archivo pom.xml, justo antes de la etiqueta </project>. Luego de eso, solo basta con hacer click derecho en el proyecto y seleccionar “Clean and Build” en Netbeans. Al hacer la compilación, aparecerán 2 archivos JAR, uno sin dependencias y el otro con dependencias.

Por supuesto que el archivo con dependencias pesa mucho más que uno sin dependencias. La ventaja de esto es que se podrá ejecutar donde sea, en cualquier sistema operativo sin necesidad de estar creando carpetas y descargando ficheros.

Si quieren ver un ejemplo del uso de este método, les recomiendo el proyecto ArduinoSwitch, una sencilla aplicación para encender un LED en Arduino desde Java. Lo pueden encontrar en nuestro repositorio de Github.

Cuando  se descarga el proyecto y se compila, habrá dos archivos en la carpeta proyecto\ArduinoSwitch\Java\ArduinoSwitch\target. Estos son ArduinoSwitch.jarArduinoSwitch-jar-with-dependencies.jar.

JAR ejecutable con MAVEN
Resultado de aplicar el método descrito en este post

Espero que la información presentada sea de utilidad para ustedes. Cualquier comentario, duda o sugerencia me la hacen llegar a través de la caja de comentarios.

Dejar respuesta

Please enter your comment!
Please enter your name here