Quando utilizamos maven para gerenciar projetos web java, provavelmente o empacotamento do artefato será configurado como war, em outras palavras o pom.xml terá o atributo packaging configurado com war.
Devido essa configuração, o maven exige que o projeto java web tenho um arquivo web.xml dentro da pasta WEB-INF, no entanto, nem sempre precisamos dessa configuração mas é lançado um erro no build do projeto pelo maven, como o erro abaixo:
[INFO] ————————————————————————
[INFO] BUILD FAILURE
[INFO] ————————————————————————
[INFO] Total time: 2.712s
[INFO] Finished at: Wed Aug 31 23:27:58 BRT 2016
[INFO] Final Memory: 11M/309M
[INFO] ————————————————————————
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.1.1:war (default-war) on project javaee-angularjs: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
Para isso, é possível adicionar uma configuração no plugin maven-war-plugin desabilitando essa validação no marcando o atributo failOnMissingWebXml para falso, como no exemplo abaixo:
pom.xml
<plugin> <artifactId>maven-war-plugin</artifactId> <version>2.3</version> <extensions>false</extensions> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin>