java - packagingexcludes - maven-war-plugin example
Maven Error al ensamblar WAR: el atributo webxml es necesario al compilar el proyecto SpringMVC con una configuraciĆ³n pura basada en Java y sin xml''s (2)
Estoy desarrollando un proyecto Spring MVC con una configuración pura basada en Java. Me aparece el siguiente error cuando hago una instalación limpia de Maven.
Error al ejecutar el objetivo org.apache.maven.plugins: maven-war-plugin: 2.2: war (default-war) en el proyecto SpringMVC-ShoppingCart: Error al armar WAR: se requiere el atributo webxml (o WEB-INF / web preexistente .xml si se ejecuta en modo de actualización) -> [Ayuda 1]
El error dice que falta web.xml
, pero no tuve uno porque utilicé la configuración pura basada en Java.
¿Cómo puedo asegurarme de que el proyecto crea y crea un archivo war sin web.xml
?
Este error ocurre porque el maven-war-plugin
, en la versión 2.6 o inferior, espera por defecto un archivo src/main/webapp/web.xml
para estar presente en su proyecto WAR, y no lo encontró.
Use anotaciones y actualice a 3.0.0 o posterior
A partir de la versión 3.0.0 del complemento, la presencia de un web.xml
ya no es obligatoria por defecto :
El valor predeterminado para
failOnMissingWebXml
se ha cambiado detrue
afalse
.
Esto significa que la actualización del complemento resuelve directamente el problema. Puede agregar la siguiente configuración en su POM:
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
</plugin>
La razón es que desde Servlet 3.0, el archivo web.xml
ya no es necesario en una aplicación web y puede reemplazarse con anotaciones para tener una configuración basada en Java ( MWAR-262 ). Sin embargo, dado que su proyecto podría no usar anotaciones para reemplazar este archivo, en cuyo caso podría faltar realmente el archivo web.xml
, se agregó una comprobación de cordura en la versión 3.0.1 del complemento para asegurarse de que la anotación @WebServlet
está en el compile classpath de su proyecto WAR ( MWAR-396 ). Si no es así, y no hay ningún archivo web.xml
en su proyecto, el complemento seguirá fallando por defecto.
Ignora el web.xml
falta
Si solo desea que el complemento ignore explícitamente un archivo web.xml
falta, independientemente del uso de anotaciones, puede establecer el parámetro failOnMissingWebXml
en false
. Una configuración de muestra sería:
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
Esto se debe a que no ha incluido web.xml en su proyecto web y está intentando construir la guerra con maven. Para resolver este error, debe configurar el failOnMissingWebXml como falso en el archivo pom.xml.
Por ejemplo:
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
Por favor, vea el blog para más detalles: https://ankurjain26.blogspot.in/2017/05/error-assembling-war-webxml-attribute.html