warsourcedirectory plugin packagingexcludes from exclude example compiler maven war

packagingexcludes - maven-compiler-plugin



Error “Se requiere el atributo webxml” en Maven (16)

¿Se modificó la estructura de carpetas para que el archivo ya no esté en /src/main/webapp/WEB-INF/web.xml ?

Para resolver este problema, le di a mi carpeta web el nombre de aplicación web y la coloqué dentro de src / main. Maven parece buscar web.xml por defecto en /src/main/webapp/WEB-INF/web.xml . Si haces esto, entonces no necesitas decirle explícitamente a maven dónde está web.xml. Y si ha alterado su estructura de carpetas y su compilación recientemente dejó de funcionar, esta podría ser la razón.

Nota: esta es una publicación antigua, pero las soluciones publicadas no indican por qué una compilación en funcionamiento dejaría de funcionar repentinamente.

Estoy teniendo el siguiente error:

Error al ensamblar WAR: el atributo webxml es obligatorio (o WEB-INF / web.xml preexistente si se ejecuta en modo de actualización)

Tengo web.xml en el lugar correcto, que es projectname/src/main/webapp/WEB-INF/web.xml

¿Qué podría estar causando esto?


Asegúrese de que pom.xml esté colocado correctamente en la carpeta Proyecto. y no dentro de la carpeta de destino o en cualquier otro lugar.

Parece que pom.xml no está relativamente alineado.


El valor de mi etiqueta webXml necesitaba verse así para funcionar:

<webXml>${project.basedir}/src/main/webapp/WEB-INF/web.xml</webXml>


Este error se produce porque le dices a Maven que haga paquetes de archivos para war .

<packaging>war</packaging>

¿Realmente necesitas la guerra? Si no, pon el tarro allí. Aquí está el código completo:

<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> <version>1.0-SNAPSHOT</version> <groupId>com.your.groupid</groupId> <artifactId>artifactid</artifactId> <packaging>jar</packaging>


Esto se debe a que no ha incluido web.xml en su proyecto web y está intentando construir war utilizando maven. Para resolver este error, debe establecer el failOnMissingWebXml en falso en el archivo pom.xml.

Por ejemplo:

<properties> <failOnMissingWebXml>false</failOnMissingWebXml> </properties>

Consulte el blog para obtener más detalles: https://ankurjain26.blogspot.in/2017/05/error-assembling-war-webxml-attribute.html


Funcionó para mí también.

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <webXml>WebContent/WEB-INF/web.xml</webXml> </configuration> </plugin>


Funciona perfectamente para mí también.

<project> ..... <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <webXml>WebContent/WEB-INF/web.xml</webXml> </configuration> </plugin> </plugins> </build> </project>


He tenido el mismo error en el servidor de prueba pero no en el local. Después de unos minutos, descubrí que el IDE no estaba sincronizado con el pom.xml. Así es como lo resuelvo:

Volver a generar el descriptor de despliegue con Eclipse

  1. Haga clic derecho en la carpeta de su proyecto
  2. En el menú contextual, elija "Java EE Tools" y luego "Generar Desglose de Descriptor de Implementación"
  3. Se creará el web.xml.

Volver a generar el descriptor de implementación con IntelliJ

  1. Haga clic derecho en la carpeta de su proyecto
  2. En el menú contextual, elija "Abrir configuración del módulo", luego haga clic en + para agregar el descriptor de despliegue web.
  3. Luego, puede cambiar la ruta de acceso a su descriptor o los Directorios de recursos web y en el lado derecho.
  4. Entonces obtendrás algo como:

Parece que tiene web.xml en la ubicación correcta, pero aún así, este error suele deberse a que la estructura del directorio no coincide con lo que Maven espera ver. Por ejemplo, si comienza con una aplicación web de Eclipse que está intentando construir con Maven.

Si ese es el problema, una solución rápida es crear un
src/main/java y a
src/main/webapp (y otros directorios si los necesita) y simplemente mueva sus archivos.

Aquí hay una descripción general del diseño del directorio de Maven: http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html


Según la documentación, dice: Si fallará o no la compilación si falta el archivo web.xml. Establézcalo en falso si desea que WAR se construya sin un archivo web.xml. Esto puede ser útil si está creando una superposición que no tiene un archivo web.xml. El valor predeterminado es: verdadero. La propiedad del usuario es: failOnMissingWebXml.

<plugin> <artifactId>maven-war-plugin</artifactId> <version>2.1.1</version> <extensions>false</extensions> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin>

Espero que quede más claro.


Sería útil si puede proporcionar un fragmento de código de su plugin de maven-war. Parece que el web.xml está en el lugar correcto, aún así puedes probar y dar la ubicación explícitamente

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <webXml>src/main/webapp/WEB-INF/web.xml</webXml> </configuration> </plugin>


Si cambia la ruta predeterminada del proyecto, debe especificar la ubicación del archivo web.xml, por ejemplo:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.5</version> <configuration> <webXml>src/main/web/WEB-INF/web.xml</webXml> </configuration> </plugin>


Si está migrando de una configuración basada en XML a una basada en Java y ha eliminado la necesidad de web.xml implementando WebApplicationInitializer, simplemente elimine el requisito para que el archivo web.xml esté presente.

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> ... </configuration>


Tuve exactamente el mismo problema y lo resolví así:

Haga una nueva carpeta llamada WEB-INF bajo src/main/webbapp luego

Haga clic derecho en su proyecto -> Herramientas Java EE -> Generar código auxiliar de descriptor de implementación

Esto debería generar su web.xml

Espero que esto ayude a resolver su problema: D


mvn-war-plugin 2.3 soluciona esto:

<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.3</version> </plugin> ...


<plugin> <artifactId>maven-war-plugin</artifactId> <version>2.4</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin>

Esta solución funciona para mí (yo estaba usando 2.2 antes). Además, estoy usando la configuración basada en Java para Servlet 3.0 y no es necesario tener el archivo web.xml.