Maven – webxml attribute is required

Maven package a web application and hits the following error message :

$ mvn package
//...
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war 
(default-war) on project spring4-mvc-maven-ajax-example: 

Error assembling WAR: webxml attribute is required 
(or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1]

Solution

1. For servlet container < 3, make sure WEB-INF/web.xml file exists.

2. For servlet container >=3, and NO web.xml web application, declares the following maven-war-plugin plugin, and set the failOnMissingWebXml option to false.

pom.xml

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

References

  1. Apache Maven WAR Plugin
  2. Apache Tomcat – Which version do I want?

About the Author

author image
mkyong
Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter, or befriend him on Facebook or Google Plus. If you like my tutorials, consider make a donation to these charities.

Comments

avatar
4 Comment threads
2 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
5 Comment authors
DimaMdharmkyongArmando CoutoSiva Recent comment authors
newest oldest most voted
Siva
Guest
Siva

Even simpler: Add false to section in pom.xml. No need to add maven-war-plugin.

mkyong
Guest
mkyong

wow, thanks for your input, I didn’t know about that!

Mdhar
Guest
Mdhar

Thanks yong.

Armando Couto
Guest
Armando Couto

very cool!!!

mkyong
Guest
mkyong

Thanks

Dima
Guest
Dima

thanks!!