2011-01-14 10 views
6

Aktualnie migrowałem proces budowania z Eclipse/Ant do Maven/M2Eclipse/Artifactory. Mam Webapp jako projekt WTP w Eclipse. Przeprowadziłem migrację do Maven z m2eclipse.Konfiguracja zależności bibliotek Tomcat w narzędziu POM

Kompilacja działa dobrze z IDE Eclipse.

Jednak gdy próbuję skompilować z Maven CLI (mvn clean & mvn compile), Maven narzeka na nie znalezienie bibliotek dostarczonych przez Tomcat Środowiska (jak adnotacje-api, servlet-api, etc ...) .

Wystarczająco sprawiedliwe: Rzeczywiście, te zależności są dostarczane przez WTP, jako Java resources/Libraries/ApacheTomcat6. Maven nie jest tego świadomy.

Mogę dezaktywować to w ścieżce budowania i dodać każdą odpowiednią zależność w moim POM, ale obawiam się, że to doprowadziłoby Mavena do ponownego wdrożenia ich w mojej aplikacji internetowej (WEB-INF/libs).

Jaki jest więc dobry sposób na powiedzenie mavenowi "ta aplikacja będzie działać w dobrze znanym środowisku, udostępniając następujące biblioteki". Czy istnieje jakiś typowy POM, który mogę dodać jako zależność?

Z góry dziękuję za porady. pozdrowienia,

Raphael

Odpowiedz

11

Jeden sposób obsłużyć to zadeklarować tych zależności z zakresu provided. Zależności te będą dostępne do kompilacji i testowania, ale nie zostaną spakowane przez program do aplikacji webapp. Na przykład:

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

Powyżej jest sposób, w jaki należy zdefiniować w swoim pom. zmień zakres na tak, aby nie zawierał tych słoików w ostatecznej wersji. – fmucar

+1

Dzięki, czy wiesz, czy Tomcat udostępnia projekt POM wszystkim bibliotekom wymienionym jako "dostarczone"? Mógłbym dodać to jako zależność. –

+0

@RaphaelJolivet, który byłby zgrabny, również szukałby tego (ale dla Glassfish, faktycznie). Znalazłeś coś? –

Powiązane problemy