Подтвердить что ты не робот

Maven Ошибка сборки WAR: атрибут webxml требуется при создании проекта SpringMVC с чистой конфигурацией на основе Java и без использования xml.

Я разрабатываю проект Spring MVC с чистой конфигурацией на основе Java. Я получаю ошибку ниже, когда я делаю чистую установку Maven.

Не удалось выполнить цель org.apache.maven.plugins: maven-war-plugin: 2.2: war (default-war) on проект SpringMVC-ShoppingCart: ошибка сборки WAR: атрибут webxml (или уже существующий WEB-INF/web.xml при выполнении обновления mode) → [Справка 1]

Ошибка говорит о том, что web.xml отсутствует, но у меня его не было, поскольку я использовал чистую конфигурацию на основе Java.

Как убедиться, что проект строит и создает военный файл без web.xml?

4b9b3361

Ответ 1

Эта ошибка возникает из-за того, что maven-war-plugin в версии 2.6 или ниже ожидает по умолчанию файл src/main/webapp/web.xml, который будет присутствовать в вашем WAR, и он не нашел его.

Использовать аннотации и обновить до 3.0.0 или новее

Начиная с версии 3.0.0 плагина, наличие web.xml по умолчанию необязательно:

Значение по умолчанию для failOnMissingWebXml было изменено с true на false.

Это означает, что обновление плагина напрямую решает проблему. Вы можете добавить следующую конфигурацию в свой POM:

<plugin>
  <artifactId>maven-war-plugin</artifactId>
  <version>3.0.0</version>
</plugin>

Причина в том, что поскольку Servlet 3.0, файл web.xml больше не нужен в веб-приложении, а можно заменить аннотациями, чтобы иметь Java- (MWAR-262). Однако, поскольку ваш проект может не использовать аннотации для замены этого файла, и в этом случае web.xml действительно может отсутствовать, в версии 3.0.1 плагина была добавлена ​​проверка работоспособности, чтобы убедиться, что аннотация @WebServlet находится в пути к компиляции вашего проекта WAR ( MWAR-396), Если это не так, и в вашем проекте нет файла web.xml, плагин по-прежнему будет работать по умолчанию.

Игнорировать недостающие web.xml

Если вы просто хотите, чтобы плагин явно игнорировал отсутствующий файл web.xml, независимо от использования аннотаций, вы можете установить failOnMissingWebXml до false. Пример конфигурации:

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

Ответ 2

Это потому, что вы не включили web.xml в свой веб-проект и пытаетесь построить войну с помощью maven. Чтобы устранить эту ошибку, необходимо установить для параметра failOnMissingWebXml значение false в файле pom.xml.

Например:

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

Подробнее см. блог: https://ankurjain26.blogspot.in/2017/05/error-assembling-war-webxml-attribute.html