2011-01-14 6 views
6

В настоящее время я переношу наш процесс сборки из Eclipse/Ant в Maven/M2Eclipse/Artifactory. У меня есть Webapp как проект WTP в Eclipse. Я перенес его в Maven с m2eclipse.Настройка зависимостей библиотек Tomcat в maven POM

Компиляция отлично работает от Eclipse IDE.

Однако, когда я пытаюсь скомпилировать из Maven CLI (mvn clean & mvn compile), Maven жалуется не найти библиотеки, предоставляемые Tomcat среды (например, аннотаций-апи, сервлет-апи и т.д., ...) ,

Достаточно справедливо: эти зависимости предоставлены WTP, как Java resources/Libraries/ApacheTomcat6. Мавен не знает о них.

Я могу деактивировать это в пути построения и добавить каждую соответствующую зависимость в свой POM, но я боюсь, что это приведет к тому, что Maven снова развернет их в моем webapp (WEB-INF/libs).

Итак, что можно сказать maven «это приложение будет работать в хорошо известной среде, предоставляя следующие библиотеки». Есть ли какой-то общий Tomcat POM, который я мог бы добавить как зависимость?

Заранее благодарим за ваш совет. пожеланий,

Рафаэль

ответ

11

Один из способов справиться с этим, чтобы объявить эти зависимости с областью provided. Эти зависимости будут доступны для компиляции и тестирования, но не будут упакованы maven в webapp. Например,

 <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jsp-api</artifactId> 
      <version>2.0</version> 
      <scope>provided</scope> 
     </dependency> 
+1

Выше описано так, как вам нужно определить в вашей помпе. измените область применения, чтобы maven не включал эти банки в вашу окончательную сборку. – fmucar

+1

Спасибо, вы знаете, если Tomcat предоставляет проект POM со всеми библиотеками, которые уже указаны как «предоставленные»? Я мог бы добавить его как зависимость. –

+0

@ RaphaelJolivet, который был бы аккуратным, также ищем это (но для Glassfish, на самом деле). Вы нашли что-нибудь? –

Смежные вопросы