En este artículo discutiremos cómo crear un proyecto Java usando Maven y personalizar el proyecto generado. Cubriremos cómo crear un proyecto usando un Arquetipo de Maven y cómo personalizar el proyecto generado para satisfacer sus necesidades.
Crear un proyecto Java utilizando Arquetipos de Maven
Es posible crear un arquetipo de Maven personalizado, pero para este ejemplo utilizaremos el arquetipo maven-archetype-quickstart provisto por Maven, para lo cual ingresaremos lo siguiente en nuestra terminal o línea de comandos:
mvn archetype:generate
-DgroupId=com.jcodepoint
-DartifactId=myapp
-DarchetypeArtifactId=maven-archetype-quickstart
-DinteractiveMode=false
Obtendremos el siguiente output donde se informa, entre otras cosas, el directorio de generación de los archivos y que el proceso ha finalizado de forma satisfactoria:
El proyecto generado tendrá la siguiente estructura que cuenta con directorios para el código fuente de la aplicación y pruebas unitarias por separado, y un archivo pom.xml en el directorio raíz:
El archivo pom.xml
El archivo pom.xml contiene toda la información relativa al proyecto en formato XML. Esta información incluye la estructura del proyecto, dependencias Maven, plugins, etc.
El archivo pom.xml generado debería verse así:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.jcodepoint</groupId>
<artifactId>myapp</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>myapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Elemento | Descripción |
---|---|
modelVersion | La única versión soportada para POM es la 4.0.0. |
groupId | Este valor suele ser el mismo dentro de un proyecto, o incluso dentro de una organización, aunque no necesariamente tiene que coincidir con la estructura de paquetes del proyecto. Pero este valor sí determina la estructura de directorios dentro del repositorio si el artefacto generado se instala en el mismo. |
artifactId | Por lo general corresponde al nombre asignado al proyecto. |
packaging | Define el tipo de empaquetado del artefacto (ear, jar, war, etc). El valor por defecto es jar. |
version | Especifica el número de versión para un groupId:artifactId. |
name | Nombre descriptivo o conversacional del proyecto, más allá del artifactId. |
url | Home page del proyecto. |
dependencies | Especifica la lista de dependencias para este proyecto. Al momento de la compilación Maven descarga y enlaza las librerías incluídas en esta lista. |
El proyecto
A los efectos de ejemplificar, realizaremos un programa muy sencillo que consistirá en la reversión de un String utilizando la clase StringUtils de la librería Apache Commons Lang 3.
Modificar el archivo pom.xml
Se agregan las propiedades del compilador para especificar la versión:
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
También debemos agregar las dependencias del proyecto. En nuestro caso necesitamos agregar la librería Apache Commons Lang 3:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
El archivo pom.xml terminado debe quedar como se muestra a continuación:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.jcodepoint</groupId>
<artifactId>myapp</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>myapp</name>
<url>http://maven.apache.org</url>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Una vez modificado el POM podemos generar los archivos necesarios para importar el proyecto en Eclipse.
Para generar los archivos ejecutamos el siguiente comando:
mvn eclipse:eclipse
Luego en Eclipse hacemos click derecho sobre el workspace y seleccionamos Import…
En el diálogo que se abre seleccionamos General > Existing projects into workspace y luego click en Next:
En el siguiente diálogo seleccionar el directorio del proyecto y click en Finish:
Una vez importado el proyecto en Eclipse, modificaremos la clase App.java como sigue:
package com.jcodepoint;
import org.apache.commons.lang3.StringUtils;
public class App {
public static void main(String[] args) {
String normal = "This is Java Programming";
String reversed = StringUtils.reverse(normal);
System.out.println("-> Normal: " + normal);
System.out.println("-> Reversed: " + reversed);
}
}
Para ejecutar el programa desde Eclipse hacemos click derecho sobre la clase App.java (en el Navegador del proyecto) y seleccionamos Run as > Java Application:
La consola muestra lo siguiente:
Conclusión
El uso de Maven y JSF puede proporcionar una forma eficiente y optimizada de desarrollar aplicaciones web en Java. Al utilizar el arquetipo maven-archetype-quickstart, los desarrolladores pueden configurar rápidamente una estructura de proyecto que incluya los archivos y directorios necesarios para una aplicación Java básica. Además, al agregar las dependencias JSF necesarias al archivo pom.xml del proyecto, los desarrolladores pueden incorporar fácilmente la funcionalidad JSF en su aplicación. Con estas herramientas a su disposición, los desarrolladores pueden optimizar su flujo de trabajo y concentrarse en desarrollar aplicaciones sólidas y eficientes que satisfagan las necesidades de sus usuarios.
Te puede interesar
Agregar dependencias en Apache Maven
En este artículo veremos cómo agregar dependencias en Apache Maven en unos pocos pasos, buscando en el Repositorio Central de Maven.