Spring Boot) pom.xml

나나·2022년 3월 18일
0

스프링 부트

목록 보기
4/12
post-thumbnail

pom.xml

Maven 프로젝트를 생성하면 루트 디렉토리에 생성되는 파일로,
Project Object Model 정보를 담고 있다.

주요 설정 정보

  • 프로젝트 정보: 프로젝트의 이름, 개발자 목록, 라이센스 등
  • 빌드 설정 정보: 소스, 리소스, 라이프 사이클 등 실행할 플러그인 등
  • POM 연관 정보: 의존 프로젝트(모듈), 상위 프로젝트, 하위 모듈 등

프로젝트 기본 정보

pom 파일에서 프로젝트 정보와 관련된 태그는 아래와 같다.

  • <name>: 프로젝트 명
  • <url>: 프로젝트 사이트 URL
  • <description>: 프로젝트에 대한 간단한 설명
  • <organization>: 프로젝트를 관리하는 단체 설명
  • <groupId>: 프로젝트의 그룹 ID 설정
  • <artifactId>: 프로젝트 아티팩트 ID 설정
  • <version>: 프로젝트의 버전
  • <packaging>: 패키징 타입 설정
    - jar: 자바 프로젝트 압축 파일. 독립적으로 실행 가능
    - war: 웹 어플리케이션을 위한 패키징 방식. WAS 같은 솔루션을 통해 기동
  • <dependecies>: 라이브러리 의존성 정보를 가지고 있는 dependency 태그를 묶은 태그
  • <dependency>: 각 라이브러리의 정보를 담는 태그
  • <groupId>: 의존성 라이브러리의 group ID
  • <artifactId>: 의존성 라이브러리의 아티팩트 ID
  • <version>: 의존성 라이브러리의 버전
  • <scope>: 해당 라이브러리의 이용 범위를 지정 (옵션사항)
  • <optional>: 다른 프로젝트에서의 이 프로젝트를 의존성 설정을 할 경우 사용할지 결정 (옵션사항)

💡 <scope> 태그 설정값

  • compile (default): 아무것도 지정되지 않았을 경우 설정되는 값이다. 이 값으로 설정하는 경우 모든 클래스 경로에서 사용할 수 있으며 컴파일 및 배포 상황에서 같이 제공된다.
  • provided: compile과 유사하지만 JDK 혹은 Container가 런타임 시에만 제공한다. 컴파일 혹은 테스트 경로에서만 사용하며, 배포 시에는 빠진다.
  • runtime: 컴파일 시에는 사용하지 않고 실행 상황에서만 사용된다. 런타임과 테스트 경로에서는 있지만 컴파일 클래스 경로에는 존재하지 않는다.
  • test: 테스트 상황에서만 사용되는 라이브러리를 의미한다. 실 가동 상황에서는 필요없는 라이브러리를 사용할 경우에 설정하고, 종속된 다른 프로젝트에는 영향을 미치지 않는다.
  • system: provide와 유사하지만 저장소에서 관리되지 않고 직접 관리하는 JAR를 추가한다. systemPath를 추가해서 작성해야한다.

참고)
어라운드허브 스튜디오

profile
코린이의 둥당둥당 개발일지

0개의 댓글