Maven ошибка сборки WAR: атрибут webxml требуется при создании проекта SpringMVC с чистой конфигурацией на основе Java и без xml
Я разрабатываю проект Spring MVC с чистой конфигурацией на основе Java. Я получаю ошибку ниже, когда я делаю Maven clean install.
не удалось выполнить цель орг.апаш.знаток.Плагины:maven-war-plugin:2.2: war (по умолчанию-война) on проект SpringMVC-ShoppingCart: ошибка сборки WAR: атрибут webxml требуется (или уже существующий WEB-INF / web.xml при выполнении в обновлении mode)- > [Help 1]
ошибка говорит, что web.xml
отсутствует, но у меня его не было, так как я использовал чистую конфигурацию на основе Java.
Как убедиться, что проект строит и создает war-файл без web.xml
?
2 ответов
эта ошибка происходит потому, что maven-war-plugin
в версии 2.6 или ниже, ожидает по умолчанию src/main/webapp/web.xml
файл должен присутствовать в вашем военном проекте, и он его не нашел.
используйте аннотации и обновите до 3.0.0 или новее
начиная с версии 3.0.0 плагина, наличие web.xml
больше не является обязательным по умолчанию:
значение по умолчанию
failOnMissingWebXml
изменилась сtrue
вfalse
.
это означает, что обновление плагина непосредственно решает проблему. Вы можете добавить следующую конфигурацию в свой POM:
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
</plugin>
причина в том, что начиная с сервлета 3.0, больше не нужен в веб-приложении, и можно заменить аннотации иметь конфигурацию на основе Java (MWAR-262). Однако, поскольку ваш проект может не использовать аннотации для замены этого файла, в этом случае web.xml
на самом деле может отсутствовать, проверка здравомыслия была добавлена в версии 3.0.1 плагина, чтобы убедиться, что аннотация @WebServlet
в компиляции класса вашего проекта войны (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>
Это потому, что вы не включили интернет.xml в вашем веб-проекте и пытается построить войну с помощью maven. Чтобы устранить эту ошибку, необходимо задать failOnMissingWebXml значение false в pom.XML-файл.
например:
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
пожалуйста см. блог Для больше деталей: https://ankurjain26.blogspot.in/2017/05/error-assembling-war-webxml-attribute.html