Как предотвратить дублирование jar сервлета с помощью eclipse + m2eclipse

Я использую Eclipse + Maven + m2eclipse для создания и тестирования веб-приложения в Apache Tomcat.

Я Я настроил сервер Tomcat внутри Eclipse и настроил сборку развертывания для моего веб-приложения, включая «Maven Dependencies» (специализация Java Build Path Entries).

Когда я развертываю и запускаю сервер, Tomcat / Catalina всегда предупреждает меня :

ИНФОРМАЦИЯ: validateJarFile (/projects/src/main/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/webapp/WEB-INF/lib/servlet-api-2.5.jar) - jar not загружен. См. Servlet Spec 2.3, раздел 9.7.2. Класс нарушения: javax / servlet / Servlet.class

Это связано с тем, что m2eclipse рассматривает servlet-api-2.5 как зависимость моего проекта и считает его частью «Зависимостей Maven» и копирует его как часть сборки развертывания , но контейнер сервлетов Tomcat имеет свою собственную копию этого и не любит видеть две копии на пути к классу.

Я пометил зависимость от моего проекта до servlet-api-2.5 в моем pom.xml с помощью


provided

, что не позволяет изолированному Maven упаковывать servlet-api-2.5 в мои сборки, но m2eclipse не видит этого в этом.

(Это не так уж важно, потому что предупреждение безвредно, Я вижу это только во время тестирования внутри IDE, и настоящие клиенты этого не увидят, но я все же хотел бы знать, как это исправить, потому что мне нравится чистота и мне нравится знать, как все работает.)

Есть ли правильный способ указать m2eclipse не развертывать этот файл или запретить Eclipse позволить m2eclipse сказать последнее слово о том, какие зависимости являются зависимостями времени выполнения?

Я нашел https://issues.sonatype.org/browse / MNGECLIPSE-1193 , в котором упоминается

контейнер «Maven Dependencies», отражает тестовую область времени компиляции, поэтому предполагается, что у него есть зависимости с областью «при условии»

14
задан metamatt 6 May 2011 в 00:27
поделиться