Hello World con Maven

Muchas veces he hablado con mis compañeros y amigos de por qué escribo en mi blog. Tengo muchas razones para ello, pero una fundamental es que, de no hacerlo, termino olvidando aquello que estudié o que en algún momento tuve que dedicar varias horas/dias de trabajo.
Como habrás podido comprobar por lo que escribo, durante toda mi carrera me he centrado fundamentalmente en tecnologías Microsoft, aunque también he tenido mis momentos de PHP, Nodejs, Java, etc. Desde hace ya algunas semanas estoy poniendo mucho interés en este último y, si bien hace poco estuve trabajando con proyectos con Maven, necesito hacer un refresco que prefiero compartir contigo y que me ayudes (involuntariamente) a recordar. Para este post sólo voy a crear el proyecto más simple con Maven y mostrarte lo más básico.

Si Maven es nuevo para ti, lo que necesitas saber para poder seguir este artículo es que se trata de una herramienta que te ayuda con la administración de proyectos en Java. Mucha gente lo utiliza sobre todo con el objetivo de administrar las dependencias de un proyecto de una forma sencilla y lo cierto es que su uso está bastante extendido en el mercado. Por ello, lo primero que debes instalar es Maven como tal, desde el apartado Downloads del sitio oficial. Descarga el contenido en un directorio de tu elección. Una vez hecho esto, te recomiendo añadas la carpeta bin al PATH de Windows para poder acceder a este comando desde cualquier ubicación. La forma más sencilla de comprobar que Maven funciona correctamente es accediendo a la consola y escribir mvn –version.

mvn --version
mvn –version

Existen varias formas de crear un proyecto con Maven, pero para este artículo voy a utilizar Visual Studio Code, con el fin de simplificarlo lo máximo posible. Crea un directorio con el nombre de tu proyecto y añade un archivo llamado pom.xml (Project Object Model). Se trata de la configuración que Maven buscará cuando compile tu aplicación. Es un documento XML con la siguiente estructura:

<project>

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.returngis</groupId>
    <artifactId>HelloWorld</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

</project>
  • modelVersion: versión del esquema de pom.xml que estás utilizando, la actual es la 4.0.0.
  • groupId: Se trata del nombre que te diferencia de otras compañias. Para que te hagas una idea, en mi caso utilizaré com.returngis.
  • artifactId: es como quieres llamar a tu aplicación, en este caso HelloWorld.
  • version: tal y como su nombre indica, se trata de la versión de nuestra aplicación. Existe una convención, 1.0-SNAPSHOT de la que puedes leer más aquí.
  • packaging: se trata del tipo de empaquetamiento que va a realizar Maven para este proyecto. En este caso será jar.

Por ahora, esto es todo lo que necesitas para comenzar con Maven. Lo siguiente que debes generar es la estructura de carpetas que Maven espera para sus proyectos. Es posible modificar las mismas pero te recomiendo que intentes seguir las convenciones siempre que puedas. En este caso es la siguiente:

Maven project structure
Maven project structure

Maven es capaz de compilar cualquier clase que esté bajo esta estructura. Para comprobarlo, vamos añadir algo de código en la clase HelloWorld.java:

public class HelloWorld{
    
    public static void main(String args[])
    {
        System.out.println("Hello World!");
    }
    
}

Una vez hecho esto, ejecuta el proyecto desde la consola de Windows. Una forma fácil de ir a la ruta del proyecto desde Visual Studio Code es posicionándonos en el archivo pom.xml y con el botón derecho seleccionar Open in Command Prompt.

Visual Studio Code - Open in Command Prompt
Visual Studio Code – Open in Command Prompt

Una vez en dicha ruta ejecuta mvn compile.

mvn compile
mvn compile

Gracias a esta acción se habrá generado un directorio llamado target el cual a su vez tiene una carpeta llamada classes, que contiene todos los ficheros compilados, en este caso HelloWorld.class el cual puedes invocar a través del siguiente comando:

java HelloWorld
java HelloWorld
java HelloWorld

Ahora que ya has comprobado que tu clase funciona correctamente es el momento de empaquetar tu proyecto, para ello debes lanzar la acción package a través de la consola.

mvn package

Como en tu configuración, el archivo pom.xml, figuraba que el formato del paquete debe ser de tipo jar, generará un archivo con el nombre del artifactId seguido de la versión y con la extensión jar en la carpeta target.

mvn package
mvn package

Este ha sido un pequeño ejemplo que me ayuda a recordar el formato de pom.xml, la estructura de la carpetas y los comandos que hace unas semanas aprendí y ya habían desaparecido totalmente de mi cabeza.

¡Saludos!