Maven Scope

2020. 4. 1. 15:57빌드 도구/Maven

Maven은 dependency 엘리먼트 하위의 scope 엘리먼트를 통해 포함하려는 라이브러리의 범위를 지정할 수 있습니다.

Compile

기본 영역으로 아무것도 지정되지 않은 경우 사용됩니다. Compile 의존 관계에 있는 것은 프로젝트의 모든 클래스에서 사용 가능합니다.

Provided

Compile과 매우 유사하지만, 실행 시에 의존 관계를 제공하는 JDK나 컨테이너에 대해서 적용됩니다. 예를 들어, JEE에 대한 웹 어플리케이션을 만드는 경우, 웹 컨테이너가 서블릿 API와 Java EE API 관련 클래스들을 제공하기 때문에 provided 영역으로 의존 관계가 세팅되어야 합니다. 이 영역은 컴파일과 테스트의 클래스 패스 용으로 사용되며, 자동 영역입니다.

Runtime

의존 관계가 컴파일시 필요하지 않지만, 실행 시에 필요하다는 것을 의미합니다. 실행 시와 테스트 클래스 패스에 속하지만, 컴파일 클래스 패스에는 속하지 않습니다.

Test

일반적인 어플리케이션 사용에 대해서는 의존 관계가 필요 없고, 테스트 컴파일과 실행 시점에만 사용됩니다.

System

명시적으로 해당 JAR를 포함하는 것이 제공되어야 한다는 것을 제외하고 provided와 유사합니다. Artifact는 항상 사용 가능하며 Repository에서 검색하지 않습니다.

Import

이 영역은 에서 pom의 의존 관계에 대해서 사용됩니다. 지정된 POM이 해당 POM의 영역에 있는 의존 관계로 대체됨을 의미합니다. 이것들이 대체되기 때문에 import 영역의 의존관계들은 실질적으로 의존에 대한 제약에 대해 관여하지 않습니다.

728x90

'빌드 도구 > Maven' 카테고리의 다른 글

Maven  (0) 2022.02.27
maven-war-plugin  (0) 2020.04.04
Maven Profile  (0) 2020.03.31