Я использую 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», отражает тестовую область времени компиляции, поэтому предполагается, что у него есть зависимости с областью «при условии»