728x90
Maven 빌드 툴 사용시 pom.xml 내 dependency 태그안에서 <scope/> 을 보신적이 있지 않으신가요?
이는 해당 의존성을 어느 시점에 포함을 시키고 어느시점에 포함시키지 않을지를 결정하는 옵션입니다.
- compile: scope을 명시하지 않았을 때 기본으로 적용되는 옵션입니다. 컴파일 시점에도 필요하고 배포할때도 필요할 때 사용되는 옵션입니다. 또한 이 프로젝트를 dependency로 불러온 다른 프로젝트에서도 포함됩니다.
- provided: 컴파일 시점에는 필요하지만 배포시점에는 불필요할때 사용되는 옵션입니다. 주로 JDK, servlet API, Java EE API 등이 해당됩니다
- runtime: 컴파일시점에는 필요없지만 runtime 시점에는 필요할때 사용되는 옵션입니다.
- system: repository에서 검색하지 않고, 명시된 위치(경로)에서 jar를 이용할때 사용되는 옵션입니다. 그 외에는 provided와 같습니다
- test: 테스트 컴파일과 실행 시점에만 사용될때 사용되는 옵션입니다.
- import(Maven 2.0.9 이후에만 적용): 다른 pom.xml 파일에 정의되어있는 의존관계 설정을 현재 프로젝트로 가져올때 사용되는 옵션입니다. <dependencyManagement> 에서만 사용가능합니다.
출처:
- [Maven] Dependency 의 scope 옵션
728x90
'Spring' 카테고리의 다른 글
[Cache] EHCache 란? (0) | 2023.04.10 |
---|---|
[Maven] Maven이란? (feat. Maven lifecycle) (1) | 2023.04.09 |
[Spring] @Transactional 어노테이션 동작방식 (0) | 2023.02.21 |
[JPA] 비관적 락(Pessimistic Lock)과 낙관적 락(Optimistic Lock) (0) | 2022.11.01 |
[Spring] Spring AOP 프록시 - JDK Proxy(JDK Dynamic Proxy), CGLib (0) | 2022.10.30 |