Как настроить Spring Boot 1.2.0 для Servlet 3.0 и настроить m2e для Eclipse Facet на 3.0?

В Spring Boot 1.2.0 m2e устанавливает фасет проекта Eclipse «Динамический веб-проект» на 3.1. Это ожидается, поскольку Spring Boot 1.2.0 недавно поддерживает Servlet Spec 3.1.

Однако нам нужно оставаться с 3.0 (Tomcat 7), поэтому мы устанавливаем правильное свойство в нашем POM в соответствии с инструкциями по загрузке:

<servlet-api.version>3.0.1</servlet-api.version>

Но m2e по-прежнему устанавливает для параметра Eclipse значение 3.1, а не 3.0. Проблема в том, что Eclipse не развернет войну на Tomcat 7.

Что еще нужно настроить, чтобы m2e установил фасет на 3.0, чтобы мы могли перейти на Spring Boot 1.2.0?


person Jeff    schedule 12.12.2014    source источник


Ответы (2)


Это сработало для меня:

Добавьте версию tomcat в pom.xml в разделе ‹ properties> :

<tomcat.version>7.0.59</tomcat.version>

Затем перейдите в «Свойства» -> «Аспекты проекта», снимите флажок «Динамический веб-модуль», затем «ОК» или «Применить». Затем выполните Maven- > Обновить проект...

Версия динамического веб-модуля должна была обновиться до 3.0.

person David Roberts    schedule 18.03.2015
comment
P.S. Работал после того, как я удалил проект eclipse и повторно импортировал его (как проект Maven). - person mvmn; 24.03.2016
comment
Спасибо, но это ручной шаг, которого я избегаю. У меня Maven автоматически управляет конфигурацией проектов Eclipse. Шаги, выполняемые вручную, плохо масштабируются для многих членов команды, к тому же о них забывают, если они не записаны. - person Jeff; 10.06.2016

Я нашел простое решение: m2e-wtp устанавливает веб-фасет проекта Eclipse, просматривая web.xml (если он существует) или сканируя путь к классам для определенных классов API сервлета (когда web.xml не найден).

Поэтому либо установите версию API сервлета в web.xml, либо установите для свойства POM значение версии, отличной от сервлета 3.1 (например, версия Spring Boot 1.1.10 — 7.0.57). Любой подход заставляет m2e-wtp соответствующим образом устанавливать фасет.

Мне интересно, можно ли улучшить обнаружение или настройку m2e-wtp, поскольку в настоящее время я не знаю, как в этой конфигурации можно использовать Tomcat 8 с сервлетом 3.0 без web.xml.

person Jeff    schedule 13.12.2014