Dev study and notes

SPRING dependency Scope 종류 / 스프링 디펜던시 스코프 본문

errorSolution

SPRING dependency Scope 종류 / 스프링 디펜던시 스코프

devlunch4 2021. 3. 22. 22:46
반응형

SPRING dependency Scope 종류 / 스프링 디펜던시 스코프

 

일단 요약 된것들은 많지만 공식문서가 아니니.

 

나는 공식문서에서 발췌!

 

일단 메이븐이네,, pom.xml 을 사용하므로! 이거로 정리해보기로.

 

종속성 범위는 종속성의 전이성을 제한하고 종속성이 클래스 경로에 포함되는시기를 결정하는 데 사용됩니다.

6 가지 범위가 있습니다.

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

각 범위 (제외 import)는 아래 표에 나와있는 것처럼 다양한 방식으로 전이 종속성에 영향을줍니다. 종속성이 왼쪽 열의 범위로 설정된 경우 맨 위 행의 범위에 대한 해당 종속성의 전이 종속성은 교차점에 나열된 범위와 함께 주 프로젝트의 종속성이됩니다. 범위가 나열되지 않으면 종속성이 생략되었음을 의미합니다.

반응형
Comments