728x90
반응형

Dependency 라이브러리의 scope 옵션의 종류이다.


 compile

 기본영역

 컴파일 시점에 필요하고 배포할대도 포함이 되어진다.

 이 프로젝트를 dependency 설정된 다른 프로젝트에서도 포함이 된다.

 provided

 컴파일 시점에는 필요하지만 배포시점에는 불필요한 라이브러리로

 JDK, servlet API, Java EE API 등이 해당된다.

 runtime

 컴파일 시점에는 필요없지만 runtime 시점에 필요한 라이브러리 

 system

 Repository 에서 검색을 하지 않고 명시된 위치에서 Jar를 이용한다.

그 외 provided와 유사함 

 test

 테스트 컴파일과 실행 시점에만 사용됨

 import

 Maven 2.0.9 이후에서만 적용, 다른 POM 설정 파일에 정의되어 있는 의존 관계 설정을 현재 프로젝트로 가져온다.

<dependencyManagement> 에서만 사용이 가능하다.



Maven Build 시에 package javax.servlet.http does not exist 와 같은 servlet 에러가 발생시

컴파일시에만 필요한 servlet 라이브러리를 이용해야될 경우가 생긴다. 이럴땐


pom.xml

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


와 같이 scope 옵션을 이용하여 컴파일에만 해당 servlet.jar를 참조 할수 있게끔 한다.

 war 배포시에는 해당 jar는 포함되어 있지 않다.



참조 : http://devkkaok.tistory.com/208


728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,