[Maven] Maven dependency의 Scope 옵션
Spring

[Maven] Maven dependency의 Scope 옵션

728x90

Maven 빌드 툴 사용시 pom.xml 내 dependency 태그안에서 <scope/> 을 보신적이 있지 않으신가요?

이는 해당 의존성을 어느 시점에 포함을 시키고 어느시점에 포함시키지 않을지를 결정하는 옵션입니다.

 

  • compile: scope을 명시하지 않았을 때 기본으로 적용되는 옵션입니다. 컴파일 시점에도 필요하고 배포할때도 필요할 때 사용되는 옵션입니다. 또한 이 프로젝트를 dependency로 불러온 다른 프로젝트에서도 포함됩니다.
  • provided: 컴파일 시점에는 필요하지만 배포시점에는 불필요할때 사용되는 옵션입니다. 주로 JDK, servlet API, Java EE API 등이 해당됩니다
  • runtime: 컴파일시점에는 필요없지만 runtime 시점에는 필요할때 사용되는 옵션입니다.
  • system: repository에서 검색하지 않고, 명시된 위치(경로)에서 jar를 이용할때 사용되는 옵션입니다. 그 외에는 provided와 같습니다
  • test: 테스트 컴파일과 실행 시점에만 사용될때 사용되는 옵션입니다.
  • import(Maven 2.0.9 이후에만 적용): 다른 pom.xml 파일에 정의되어있는 의존관계 설정을 현재 프로젝트로 가져올때 사용되는 옵션입니다. <dependencyManagement> 에서만 사용가능합니다. 

 

출처:
- [Maven] Dependency 의 scope 옵션
728x90