Maven 프로젝트를 생성하면 루트 디렉토리에 생성되는 파일로,
Project Object Model 정보를 담고 있다.
pom 파일에서 프로젝트 정보와 관련된 태그는 아래와 같다.
<name>
: 프로젝트 명<url>
: 프로젝트 사이트 URL<description>
: 프로젝트에 대한 간단한 설명<organization>
: 프로젝트를 관리하는 단체 설명<groupId>
: 프로젝트의 그룹 ID 설정<artifactId>
: 프로젝트 아티팩트 ID 설정<version>
: 프로젝트의 버전<packaging>
: 패키징 타입 설정<dependecies>
: 라이브러리 의존성 정보를 가지고 있는 dependency 태그를 묶은 태그<dependency>
: 각 라이브러리의 정보를 담는 태그<groupId>
: 의존성 라이브러리의 group ID<artifactId>
: 의존성 라이브러리의 아티팩트 ID<version>
: 의존성 라이브러리의 버전<scope>
: 해당 라이브러리의 이용 범위를 지정 (옵션사항)<optional>
: 다른 프로젝트에서의 이 프로젝트를 의존성 설정을 할 경우 사용할지 결정 (옵션사항)💡
<scope>
태그 설정값
- compile (default): 아무것도 지정되지 않았을 경우 설정되는 값이다. 이 값으로 설정하는 경우 모든 클래스 경로에서 사용할 수 있으며 컴파일 및 배포 상황에서 같이 제공된다.
- provided: compile과 유사하지만 JDK 혹은 Container가 런타임 시에만 제공한다. 컴파일 혹은 테스트 경로에서만 사용하며, 배포 시에는 빠진다.
- runtime: 컴파일 시에는 사용하지 않고 실행 상황에서만 사용된다. 런타임과 테스트 경로에서는 있지만 컴파일 클래스 경로에는 존재하지 않는다.
- test: 테스트 상황에서만 사용되는 라이브러리를 의미한다. 실 가동 상황에서는 필요없는 라이브러리를 사용할 경우에 설정하고, 종속된 다른 프로젝트에는 영향을 미치지 않는다.
- system: provide와 유사하지만 저장소에서 관리되지 않고 직접 관리하는 JAR를 추가한다. systemPath를 추가해서 작성해야한다.
참고)
어라운드허브 스튜디오