java

Maven 종속성

가는가래 2017. 11. 11. 16:59

Dependency Scope 


Dependency Scope는 Dependency의 전이성을 제한하고 다양한 메이븐 빌드 작업에 사용되는 클래스 경로에 영향을 주기 위해서 사용 됩니다.


6가지 가능한 Scope가 있음.


- compile

: 이것은 지정된 범위가없는 경우 사용되는 기본 범위입니다. 컴파일 종속성은 프로젝트의 모든 클래스 경로에서 사용할 수 있습니다. 또한 이러한 종속성은 종속 프로젝트에 전파됩니다.


- provided

: 이것은 컴파일과 매우 비슷하지만 런타임에 JDK 또는 컨테이너가 종속성을 제공 할 것으로 기대한다는 것을 나타냅니다. 예를 들어, Java Enterprise Edition 용 웹 응용 프로그램을 빌드 할 때 웹 컨테이너가 해당 클래스를 제공하기 때문에 Servlet API 및 관련 Java EE API에 대한 종속성을 제공된 범위로 설정합니다. 이 범위는 컴파일 및 테스트 단계의 클래스 경로에서만 사용할 수 있으며 전파하지 않습니다.


- runtime

: 이 범위는 종속성이 컴파일에 필요하지 않지만 실행을위한 것임을 나타냅니다. 런타임 및 테스트 클래스 경로에는 있지만 컴파일 클래스 경로에는 없습니다.


- test

: 이 scope 는 응용 프로그램의 정상적인 사용에 종속성이 필요하지 않으며 테스트 컴파일 및 실행 단계에서만 사용할 수 있음을 나타냅니다. 이 scope 는 전파하지 않습니다..


- system

:이 범위는 명시 적으로 포함하는 JAR을 제공해야한다는 점을 제외하고는 제공되는 것과 유사합니다. 이슈는 항상 사용할 수 있으며 저장소에서 조회하지 않습니다.


- import 

: 이 범위는 <dependencyManagement> 섹션에서 pom 유형의 종속성에 대해서만 지원됩니다. 이는 지정된 POM의 <dependencyManagement> 섹션에서 유효한 종속성 목록으로 대체 될 종속성을 나타냅니다. 이들이 대체되므로 가져 오기 범위의 종속성은 실제로 종속성의 전이성을 제한하는 데 참여하지 않습니다.




각 범위 (가져 오기 제외)는 다른 방식으로 전이 의존성에 영향을줍니다.



참조 : "http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html"