2016-04-19 3 views
1

Я получаю следующее сообщение об ошибке при создании моего Maven-проекта с помощью команды mvn clean installMaven не может найти web.xml

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war 
(default-war) on project MyProject: 
Error assembling WAR: webxml attribute is required (or pre-existing 
WEB-INF/web.xml if executing in update mode) 

У меня есть web.xml в проекте. В папке web/WEB-INF/web.xml

Я использую IntelliJ IDEA. Я могу обойти эту проблему, добавив следующую строку в pom.xml:

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

Но я хотел бы знать, почему Maven утверждает, что web.xml отсутствует, даже если это не так и в месте по умолчанию при создании новый проект веб-приложений в IntelliJ IDEA.

+0

В path web/WEB-INF/web.xml не является стандартным, потому что не должно быть веб-директории между WEB-INF/web.xml и корневым каталогом проекта, если корневой каталог проекта не назван «веб». –

+0

Перемещен WEB-INF из веб-папки для проецирования root и по-прежнему получает ту же ошибку. –

+1

- ваш web.xml в src/main/webapp/WEB-INF? –

ответ

3

Ваша проблема заключается в том, что у вас есть web.xml на этом пути: web/WEB-INF/web.xml

С Maven, то web.xml должен идти в src/main/webapp/WEB-INF или вы должны изменить конфигурацию войны плагин webXml (смотрите здесь: https://maven.apache.org/plugins/maven-war-plugin/war-mojo.html#webXml)

+0

В моем случае у меня действительно есть web.xml в ./src/main/webapp/WEB-INF, но он не работает должным образом с 'mvn jetty: run', я не совсем уверен, почему, он всегда говорит что каталог не существует. – kevr

+0

Опубликуйте свой полный файл pom. У вас это в нужном месте, если вы не переопределяете что-то – mikeb