plugin packagingexcludes mvn intellij generate example create java maven spring-mvc maven-assembly-plugin maven-war-plugin

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 de true a false .

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