Registrarse
  • ¡Comienzan las votaciones del MPC o Mejor Proyecto Cuatrimestral de enero a abril de 2026!
    ¡Vota por tu proyecto favorito y recompensa el trabajo duro de los participantes!

    El plazo concluye el 15 de mayo

🖥️ Otros | Maven: creación y gestión básica de proyectos

Micael_Alighieri

Emperador Kaktiácero
Redactor/a
Miembro de honor
Os doy la bienvenida a otro tutorial de informática originario de mi antigua web, Dusk Chimera. En esta ocasión, vamos a aprender sobre Maven, una herramienta de software para la gestión y construcción de proyectos en Java.

Aprender sobre esto puede tener unas aplicaciones muy interesantes en nuestro caso, ya que nos permite sentar bases muy útiles para la creación de programas relacionados con el ROM Hacking, tales como editores y randomizadores dentro de una estructura organizada, así como para aquellas personas que quieran montar su propia web con un backend basado en Java.

¿Qué vamos a aprender en esta guía?
  • Cómo crear un proyecto Maven de arquetipo simple.
  • Cómo importar catálogos externos desde internet.
  • Cómo crear un proyecto Maven personalizado de arquetipo webapp, más simple y de mejor rendimiento.
  • Cómo importar arquetipos personalizados.
Requisitos
  • Eclipse (en su día utilicé la versión Photon, 4.8.0, pero no debe haber problemas con versiones más recientes).
  • JDK 1.8.
  • Haber instalado Glassfish 5 previamente, puedes aprender cómo hacerlo en la siguiente guía.
Cómo crear un proyecto Maven de arquetipo simple

En primer lugar creamos un nuevo proyecto Maven, luego pinchamos en la primera casilla.

Selección_007-300x281.png


En la siguiente pantalla ponemos en Group id y en Artifact id el mismo nombre y en packaging ponemos "war".

Selección_008.png


Cómo importar catálogos externos desde internet.

Si queremos agregar catálogos nuevos desde internet, pulsamos en "Configure" > "Add remote catalog...". En el segundo campo, que corresponde al nombre o descripción, ponemos un título descriptivo para dicho catálogo.

Selección_012.png


Cómo crear un proyecto Maven personalizado de arquetipo webapp

Paso 1: Crear el proyecto

Creamos un nuevo proyecto Maven, pero esta vez no pulsamos en la primera casilla de la primera ventana. Después, en la siguiente ventana, buscamos la palabra "we" o "web" en el filtro. Debemos elegir exactamente el arquetipo que aparece en la siguiente captura:

Selección_010.png


En caso de que hayamos importado catálogos desde internet, nos dirigimos al campo "Catalog" y, en lugar de elegir "All Catalogs", seleccionamos "Internal":

Selección_013.png


En la siguiente ventana tenemos que ponerle el nombre al proyecto, pondremos el mismo nombre tanto en el primer campo como en el segundo, que se llaman "Group Id" y "Artifact Id".

Paso 2: Adaptar la versión de Java del proyecto

Hay un problema y es que, al intentar cambiar la versión de Java, vuelve otra vez a la versión 1.5. Para solucionarlo, buscamos "maven plugin java 8", pulsamos en el primer enlace: >>accede aquí<<

Dentro de ella, donde pone "plugins", copiamos estas etiquetas, que luego modificaremos y agregaremos al pom.xml:

aaaa.png


Luego hacemos click derecho en el proyecto y pulsamos en "Properties", después en "Project Facets". Cambiamos la versión de Java a "1.8" y le damos a "Apply".

aaaa-1.png


Hacemos click derecho al proyecto > Maven > "Update Maven Project".

Paso 3: Configurar Dynamic web module y crear el web.xml

Después será necesario cambiar el "Dynamic web module" a la versión 4.0. Para ello, primero lo deshabilitamos en "Project Facets", le damos a "Apply", luego cambiamos la versión y luego le damos a activar. Nos aparecerá un nuevo recuadro en negro más abajo, lo pulsamos y se nos abrirá una ventana emergente. Después pulsamos en la casillita que aparece en la ventana emergente y le damos a "ok", aplicamos los cambios y esperamos a que realice el proceso con paciencia.

captura_maven.png


Después, actualizamos el proyecto desde Maven > Update project.

Paso 4: Eliminar carpetas de src

Nos vamos al directorio "src" y borramos las dos carpetas que contiene. Después, hacemos click derecho > Maven > Update project.

Paso 5: Comprobar web.xml

Después de eso, debemos mirar el contenido de la carpeta WebContent. Si todo ha salido como estaba previsto, contiene dos carpetas, una de ellas se llama WEB-INF. La abrimos y nos aseguramos de que allí aparezca el archivo web.xml

Paso 6: Adaptar el archivo pom.xml

Luego nos vamos a pom.xml y abrimos el "Effective POM" (pestañita inferior). Copiamos lo que viene en pantalla (varía con cada proyecto que creamos) y lo metemos detrás de la etiqueta "build" y antes de la etiqueta "plugins" del pom.xml, retocando los directorios (le quitamos lo que venga detrás de "src"). Debemos copiar desde "sourceDirectory" hasta la etiqueta "directory" que está antes de la etiqueta "finalName":

aaaa-2.png


Luego hacemos click derecho > Maven > Update project.

Paso 7: limpiar la carpeta src

Nos vamos a Java Resources > src y comprobaremos que tenemos un paquete vacío llamado main.webapp, lo borramos y ya tendremos la carpeta src vacía.

En el pom.xml, para mayor seguridad, borraremos también la etiqueta que contenga el directorio terminado en el subdirectorio "target".

Paso 8: configurar directorios de trabajo

Hacemos click derecho en el proyecto > Properties > Java Build Path, pestaña "Source", borramos la ruta del directorio que está perdido (el nombre nos lo indicará una señal de alerta con un símbolo de exclamación). Si no aparece ninguno, continuamos.

Vamos a "Deployment Assembly" y borramos las dos carpetas con error (usamos el botón "Remove"). Las carpetas que nos interesan son /src y /WebContent. Aplicamos los cambios y de nuevo, click derecho > Maven > Update project.

captura_maven2.png


Paso 9: creando el index.html y probando la plantilla en el servidor

Ahora vamos a probar el proyecto Maven. Crearemos un archivo index.html dentro del directorio WebContent, pondremos un texto de prueba y lo cargaremos en nuestro servidor Glassfish (Run as > Run on server).

Paso 10: Creando el index.jsp y probando la plantilla otra vez

Creamos un nuevo archivo, de tipo .jsp, con el siguiente nombre: index.jsp. Nos aparecerán varias opciones posibles entre las que elegir, seleccionamos la opción que más nos interese (en este ejemplo, hemos elegido HTML5):



Paso 11: corregir el error con HttpServlet

Nos saldrá un error de tipo HttpServlet, para arreglarlo nos metemos en el repositorio de Maven y buscamos el Java Servlet API: >>accede aquí<<

Vamos a la 4.0.0 y copiamos el trocito de xml en el pom.xml, dentro de la etiqueta "dependencies".
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.0</version>
<scope>provided</scope>
</dependency>
Luego abrimos el archivo web.xml y situamos la línea, que contiene "index.jsp" la primera de la lista.



Y luego, hemos descargado otra dependencia en maven repository, hemos buscado "javaserver page" y hemos seleccionado la versión 2.3.1. de JavaServer Pages(TM) API: >>accede aquí<<


Copiamos el pequeño xml que aparece ahí y los añadimos también dentro de la etiquta "dependencies" del archivo pom.xml:
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.1</version>
<scope>provided</scope>
</dependency>
Finalmente, volvemos a actualizar el proyecto Maven y probamos el index.jsp, asegurándonos previamente de que tenga algún tipo de contenido, como un mensaje, para saber que funciona correctamente.

Anexo A: localización de los archivos fuentes

Los archivos fuentes se encuentran en el src bajo "Java Resources":



Importar arquetipos personalizados

Como sé que este proceso es largo y tedioso, tenemos la opción de importar un arquetipo que ya hayamos hecho y utilizarlo directamente. De esta forma, sólo tendremos que pulsar algunos botones, ponerle el nombre al proyecto y podremos trabajar directamente.

Para ello, nos detendremos en la segunda pantalla que nos aparece cuando queremos crear un nuevo proyecto Maven y, allí, pulsaremos los siguientes botones, que aparecen rodeados con círculos:



Resolución de dudas

Al intentar abrir el proyecto con Glassfish, aparece un error de ejecución.
Si sale un error al ejecutar, miramos dentro del directorio WebContent, incluidos sus subdirectorios. Si encontramos un archivo llamado "face-facets.xml", lo borramos .

¿Dónde copio las etiquetas de plugin?
La posición exacta viene definida en la página web, aunque podemos orientarnos también por las capturas de pantalla de esta guía.

No tengo una dirección de internet con un catálogo, ¿puedo importar el catálogo desde el ordenador?
Sí, lo único que tienes que hacer es seleccionar la opción "Add Local Catalog...".
 
Arriba