Archivos War
Archivos .war
¿Qué es un archivo .war?
Un archivo .war (Web Application Archive) es un archivo comprimido que contiene todos los recursos necesarios para ejecutar una aplicación web en un servidor, como un contenedor de servlets (por ejemplo, Apache Tomcat, Jetty, JBoss). Es un archivo similar a un .jar (Java ARchive), pero específicamente diseñado para aplicaciones web. Un archivo .war puede incluir:
- Archivos
.class(archivos compilados de Java). - Archivos
.jsp(Java Server Pages). - Archivos de configuración como
web.xml. - Archivos estáticos como HTML, CSS, JavaScript y imágenes.
- Bibliotecas
.jarnecesarias para la aplicación.
La estructura básica de un archivo .war es la siguiente:
/WEB-INF/
/classes/ (archivos .class)
/lib/ (archivos .jar de dependencias)
/web.xml (archivo de configuración de la aplicación web)
/jsp/ (archivos JSP, si existen)
/static/ (archivos estáticos como HTML, CSS, JS, imágenes)
¿Cómo se crea un archivo .war con Maven?
Para crear un archivo .war usando Maven, primero debes asegurarte de que tu proyecto esté configurado correctamente. Aquí están los pasos:
1. Configurar el pom.xml para crear un .war
Asegúrate de que en tu archivo pom.xml esté especificado el tipo de empaquetado como war:
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>mi-aplicacion-web</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging> <!-- Esto indica que el empaquetado será .war -->
<dependencies>
<!-- Aquí agregas las dependencias necesarias -->
</dependencies>
<build>
<plugins>
<!-- Plugin para crear el archivo WAR -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.1</version>
<configuration>
<warName>mi-aplicacion-web</warName> <!-- Nombre del archivo WAR -->
</configuration>
</plugin>
</plugins>
</build>
</project>
En este ejemplo:
packagingse establece enwarpara indicar que el proyecto debe empaquetarse como un archivo.war.- Usamos el plugin
maven-war-pluginpara asegurarnos de que Maven pueda crear el archivo.warde forma correcta.
2. Estructura de tu proyecto
El proyecto debe estar organizado de una manera que Maven reconozca, generalmente siguiendo la convención estándar de Maven para aplicaciones web:
mi-aplicacion-web/
│
├── src/
│ ├── main/
│ │ ├── java/ (código fuente Java)
│ │ ├── resources/ (archivos de configuración)
│ │ ├── webapp/ (archivos de la aplicación web)
│ │ │ ├── WEB-INF/
│ │ │ │ ├── classes/ (archivos .class)
│ │ │ │ ├── lib/ (dependencias .jar)
│ │ │ │ ├── web.xml (configuración de la aplicación web)
│ │ │ │ ├── jsp/ (si usas JSP)
│ │ │ │ └── static/ (archivos estáticos como HTML, CSS)
│
└── pom.xml
- El directorio
src/main/webappcontiene los archivos estáticos (HTML, CSS, JS) y el directorioWEB-INFcontiene los archivos de configuración comoweb.xmly las clases compiladas enWEB-INF/classes.
3. Generar el archivo .war
Una vez que el pom.xml está configurado y el proyecto tiene la estructura adecuada, para generar el archivo .war, solo tienes que ejecutar el siguiente comando en la terminal desde el directorio del proyecto:
mvn clean package
Este comando hace dos cosas:
clean: Limpia cualquier archivo previamente generado.package: Compila el código y empaqueta todo en un archivo.war.
El archivo .war resultante se ubicará en el directorio target/ de tu proyecto. Por ejemplo, si tu artifactId es mi-aplicacion-web y la versión es 1.0-SNAPSHOT, el archivo .war generado será mi-aplicacion-web-1.0-SNAPSHOT.war.
4. Desplegar el archivo .war
Una vez que el archivo .war ha sido creado, puedes desplegarlo en un servidor de aplicaciones como Apache Tomcat, JBoss, o cualquier otro contenedor de servlets compatible. Esto generalmente se hace copiando el archivo .war al directorio de despliegue del servidor o usando herramientas de integración continua para hacerlo automáticamente.