Я использую Eclipse вместе с плагином m2eclipse для создания и управления моим проектом. В POM я включил запись для servlet-api:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
Предоставляется область действия, а не включать файл .jar в .war-пакет (он уже предоставлен контейнером сервлетов tomcat). Компиляция mvn install правильная, файл не включен в WEB-INF\lib, развертывание в tomcat работа, программа работает, все в порядке.
Но случай начинается с Eclipse. После запуска моего веб-приложения из eclipse я получаю сообщение об ошибке:
\ WEB-INF\lib\servlet-api-2.5.jar) - jar не загружен. См. Servlet Spec 2.3, раздел 9.7.2. Класс нарушения: javax/сервлет/Servlet.class
Я не знаю, почему, потому что Зависимости Maven (включая javac-servlet-2.5.jar) включаются как Зависимости модуля Java EE и должны be, помещенный в папку WEB-INF\lib, начиная с eclipse. С другой стороны, в eclipse я предоставил путь к моему каталогу apache tomcat и внутри проекта, есть автоматические ссылки на библиотеки из Apache Tomcat v6.0, включая servlet-api.jar.
В принципе, после удаления ссылки с POM на servlet-api-2.5.jar эта библиотека исчезает из Maven Dependencies, и я не получаю исключения при запуске моего веб-приложения из eclipse. Все отлично... в eclipse.
Конечно, без записи внутри POM, на этот раз mvn install отказывает с тем же исключением, я уже предоставил ранее.
Есть ли способ заставить его работать, не удаляя и не вставляя ссылку, в зависимости от того, что я хочу сделать: скомпилировать с maven или запустить с Eclipse?
Привет