Настройте зависимости библиотек Tomcat в maven POM

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

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

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

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

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

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

Заранее спасибо за совет. С уважением,

Рафаэль


person Raphael Jolivet    schedule 14.01.2011    source источник


Ответы (1)


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

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.0</version>
            <scope>provided</scope>
        </dependency>
person Raghuram    schedule 14.01.2011
comment
Выше указано, как вам нужно определить в вашем файле pom. измените область действия на предоставленную, чтобы maven не включал эти банки в окончательную сборку. - person fmucar; 14.01.2011
comment
Спасибо, знаете ли вы, предоставляет ли Tomcat проект POM со всеми уже перечисленными библиотеками? Затем я мог бы добавить его как зависимость. - person Raphael Jolivet; 17.01.2011
comment
@RaphaelJolivet, это было бы здорово, я тоже ищу это (но на самом деле для Glassfish). Вы нашли что-нибудь? - person Tuukka Mustonen; 04.01.2012
comment
Возможно ли, чтобы m2eclipse (или mvn eclipse:eclispe) добавлял зависимости к сгенерированному проекту/пути к классам? - person herman; 23.08.2012