프로그래밍 노트/빌드도구

[Maven] 메이븐 의존 라이브러리 적용 스코프

깡냉쓰 2019. 3. 31. 21:18
728x90
반응형

의존 라이브러리의 적용 스코프

메이븐은 사용하는 라이브러리 성격에 따라 스코프를 지정할 수 있다. Junit 은 테스트시에만 필요하고 실제 배포할 때는 필요없는 라이브러리이다. 각 라이브러리에 대한 스코프는 < dependency/> 아래에 < scope/> 엘리먼트로 설정할 수 있다.

Junit 라이브러리를 테스트 스코프에서만 의존 관계를 갖도록 설정할 수 있다.

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.7</version>
    <scope>test</scope>
</dependency>

6가지 스코프 설명

  • compile : 기본 스코프, 컴파일 및 배포할 때 같이 제공해야 하는 라이브러리
  • provided : 예를 들어 servlet.jar는 서블릿 컨테이너에서 제공하므로 컴파일 시점에는 필요하지만, 애플리케이션을 배포할 때 포함할 필요는 없다. (컴파일시점에사용하고 배포시점에는 포함 x, was에서 제공되기 때문에)
  • runtime : 컴파일 시에는 사용되지 않지만 애플리케이션을 실행할 때 사용되는 라이브러리 설정
  • test : 테스트 시점에만 사용하는 라이브러리에 대한 스코프
  • system : system 스코프는 provided와 비슷 (단지 우리가 직접 jar 파일을 제공해야 함. 따라서 이 스코프의 jar 파일은 저장소에서 관리되지 않을 수 있다.)
  • import : 다른 POM 설정 파일에 정의되어 있는 의존 관계 설정을 현재 프로젝트로 가져온다. 범위는 < dependencyManagement/> 엘리먼트에서만 사용 가능

=> system 과 import 스코프는 한번도 써본적 없음

728x90
반응형