У меня очень простой webapp, опубликованный как WAR файл, который разрабатывается в Eclipse. Я использую m2e для управления зависимостями. В моем проекте на вкладке " Project Facets
" включен Dynamic Web Module
вместе с Java
. Кроме того, в моей Deployment Assembly
меня есть перечисленные зависимости Maven, но нет параметров включения/исключения:
Моя WAR строит отлично и отлично работает в Eclipse. Тем не менее, Dynamic Web Module
похоже, приводит к моему файлу WAR, содержащему несколько Tomcat JAR, в дополнение ко всем моим другим зависимостям:
Я смог удалить tomcat-catalina-7.0.30.jar
(не изображен), включив в свой POM.xml:
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina</artifactId>
<version>7.0.30</version>
<scope>provided</scope>
</dependency>
Но, похоже, должен быть способ сказать Maven, что весь контейнер Tomcat будет предоставлен во время выполнения. Я не хочу добавлять ~ 20 provided
записей, чтобы удалить остальные.
Посмотрите на POM вашего проекта. Где-то кто-то добавил их без надлежащего scope
.
В Eclipse вы можете использовать редактор POM. В нижней части редактора есть набор вкладок. Один читает "Иерархия зависимостей". Здесь вы можете найти "tomcat", а m2e сообщит вам, какие POM содержат такую зависимость.
provided
область к своему tomcat7-maven-plugin
используемому для развертывания. Следовательно, все вагоны JAR в дополнение к Tomcat.