Я использую 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 не загружен. См. Спецификацию сервлета 2.3, раздел 9.7.2. Класс нарушения: javax / servlet / Servlet.class
Я не знаю почему, потому что зависимости Maven (включая javac-servlet-2.5.jar) включены как зависимости модуля Java EE и должны быть < / strong> помещается в папку WEB-INF \ lib при запуске из eclipse. С другой стороны, в eclipse я указал путь к моему каталогу apache tomcat, а внутри проекта есть автоматические ссылки на библиотеки из Apache Tomcat v6.0, включая servlet-api.jar .
Таким образом, после удаления ссылки из POM на servlet-api-2.5.jar эта библиотека исчезает из Maven Dependencies, и я не получаю исключения при запуске своего веб-приложения из eclipse. Все хорошо ... в затмении.
Конечно, без входа в POM, на этот раз mvn install failes с тем же исключением, которое я указал ранее.
Есть ли способ заставить его работать, не удаляя и не вставляя ссылку, в зависимости от того, что я хочу сделать: скомпилировать с maven или запустить с Eclipse?
С Уважением