2011-01-14 3 views
6

현재 빌드 프로세스를 Eclipse/Ant에서 Maven/M2Eclipse/Artifactory로 마이그레이션 중입니다. Eclipse에서 Webapp를 WTP 프로젝트로 사용하고 있습니다. m2eclipse를 사용하여 Maven으로 마이그레이션했습니다.Maven POM의 Tomcat 라이브러리 종속성 설정

컴파일은 Eclipse IDE에서 제대로 실행됩니다. 그러나

, 내가 메이븐 CLI에서 (mvn clean & mvn compile)를 컴파일 할 때, 메이븐에 대한 톰캣 환경에서 제공하는 라이브러리를 찾지 못하는 불평 (같은 주석-API, 서블릿 API를, 등 ...) .

충분 : 실제로 이러한 종속성은 WTP에서 Java resources/Libraries/ApacheTomcat6으로 제공됩니다. 메이븐 (Maven)은 그들에 대해 알지 못한다.

빌드 경로에서이 기능을 비활성화하고 POM에 해당 종속성을 추가 할 수 있지만 Maven이 내 webapp()에 다시 배포하도록 유도합니다.

"이 응용 프로그램은 잘 알려진 환경에서 실행되어 다음 라이브러리를 제공합니다"라고 말할 수있는 좋은 방법은 무엇입니까? 의존성으로 추가 할 수있는 일반적인 Tomcat POM이 있습니까?

미리 조언 해 주셔서 감사합니다. 관련,

라파엘이 처리하는

답변

11

한 가지 방법은 범위 provided 이러한 종속성을 선언하는 것입니다. 이러한 종속성은 컴파일 및 테스트에 사용할 수 있지만 maven에 의해 webapp에 패키징되지는 않습니다. 예 :

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

위의 내용은 pom에서 정의해야하는 방법입니다. 범위를 제공하도록 변경하면 최종 빌드에서 해당 항아리가 포함되지 않습니다. – fmucar

+1

감사합니다. Tomcat이 이미 "제공된"것으로 나열된 모든 라이브러리를 POM 프로젝트에 제공하는지 알고 있습니까? 그런 다음 종속성으로 추가 할 수 있습니다. –

+0

@RaphaelJolivet 이것은 또한 깔끔하고, 이것을 찾으려고합니다. (실제로 Glassfish의 경우). 뭐 찾았 니? –