В момента мигрирам нашия процес на изграждане от Eclipse / Ant към Maven / M2Eclipse / Artifactory. Имам Webapp като проект WTP в Eclipse. Мигрирал съм го в Maven с m2eclipse.
Компилацията работи добре от Eclipse IDE.
Въпреки това, когато се опитвам да компилирам от Maven CLI (mvn clean & mvn compile
), Maven се оплаква, че не е открил библиотеките, предоставени от Tomcat Environment (като анотации-API, сървлет-APIи т.н., ...).
Достатъчно справедливо: Действително, тези зависимости се предоставят от WTP, като Java resources / Libraries / ApacheTomcat6
, Maven не е наясно с тях.
Мога да деактивирам това в пътя на изграждане и да добавя всяка съответна зависимост в моя POM, но се страхувам, че това ще доведе Maven да ги разгърне отново в моя webapp (WEB-INF/libs
).
И така, какво е добрият начин да се каже на maven “товаПриложението ще работи в добре позната среда, предоставяйки следните библиотеки ". Има ли някаква обща Tomcat POM, която бих могъл да добавя като зависимост?
Благодаря предварително за Вашия съвет. за разбирането,
Raphael
Отговори:
11 за отговор № 1Един от начините да се справите с това е да декларирате тези зависимости с обхват provided
, Тези зависимости ще бъдат достъпни за компилиране и тестване, но няма да бъдат пакетирани от maven в webapp. Например,
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>