Настройка зависимостей библиотек Tomcat в maven POM - PullRequest
7 голосов
/ 14 января 2011

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

Компиляция выполняется из Eclipse IDE.

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

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

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

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

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

Рафаэль

1 Ответ

11 голосов
/ 14 января 2011

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

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