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