본문 바로가기
개발/maven

maven scope 속성

by 황태고블린 2022. 1. 12.
  • compile
    이것은 아무 것도 지정되지 않은 경우 사용되는 기본 범위입니다. 컴파일 종속성은 프로젝트의 모든 클래스 경로에서 사용할 수 있습니다. 또한 이러한 종속성은 종속 프로젝트에 전파됩니다.
  • provided
    이 범위의 종속성은 컴파일 및 테스트에 사용되는 클래스 경로에 추가되지만 런타임 클래스 경로에는 추가되지 않습니다. 
  • runtime
    이 범위는 종속성이 컴파일에는 필요하지 않지만 런타임에는 필요함을 나타냅니다. Maven은 런타임 및 테스트 클래스 경로에 이 범위의 종속성을 포함하지만 컴파일 클래스 경로는 포함하지 않습니다.
  • test
    이 범위는 종속성이 응용 프로그램의 일반적인 사용에 필요하지 않으며 테스트 컴파일 및 실행 단계에서만 사용할 수 있음을 나타냅니다. 이 범위는 전이적이지 않습니다. 일반적으로 이 범위는 JUnit 및 Mockito와 같은 테스트 라이브러리에 사용됩니다. Apache Commons IO와 같은 비테스트 라이브러리가 단위 테스트(src/test/java)에서 사용되지만 모델 코드(src/main/java)에서는 사용되지 않는 경우에도 사용됩니다.
  • system
    이 범위는 provided명시적으로 포함하는 JAR을 제공해야 한다는 점  제외하고 는 유사합니다 . 아티팩트는 항상 사용 가능하며 저장소에서 조회되지 않습니다.
  • import
    이 범위하는 유일한 유형의 종속성에서 지원됩니다 pom의 <dependencyManagement>섹션을 참조하십시오. 종속성이 지정된 POM <dependencyManagement>섹션 에 있는 종속성의 유효 목록으로 대체됨을 나타냅니다 . 대체되기 때문에 범위가 인 종속성은 import실제로 종속성의 전이성을 제한하는 데 참여하지 않습니다.

댓글