본문 바로가기
Spring

Maven - pom.xml 파일 노트

by SuldenLion 2022. 10. 28.
반응형

pom.xml 이란?

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

주요 설정 정보 

- 프로젝트 정보 : 프로젝트 이름, 개발자 목록, 라이센스 등 

- 빌드 설정 정보 : 소스, 리소스, 라이프 사이클 등 실행할 플러그인 등

- POM 연관 정보 : 의존 프로젝트(모듈), 상위 프로젝트, 하위 모듈 등

● 프로젝트 기본 정보 

pom 파일에서 프로젝트 정보와 관련된 태그 

-> <name> = 프로젝트 명 / <url> = 프로젝트 사이트 URL / <description> = 프로젝트에 대한 간단한 설명 / <organization> = 프로젝트를 관리하는 단체 설명

+ <groupId> = 프로젝트의 그룹 ID 설정 / <artifactId> = 프로젝트 아티팩트 ID 설정 / <version> = 프로젝트의 버전 / <packaging> = 패키징 타입 설정 ( - jar : 자바 프로젝트 압축 파일, - war : 웹 어플리케이션을 위한 패키징 방식 ) 

● 프로젝트 Dependency 설정

프로젝트에서 사용하는 라이브러리에 대한 의존성 설정과 관련된 태그

-> <dependencies> = 라이브러리 의존성 정보를 가지고 있는 dependency 태그를 묶은 태그 / <dependency> = 각 라이브러리의 정보를 담는 태그 / <groupId> = dependency 라이브러리의 group ID / <artifactId> = dependency 라이브러리의 아티팩트 ID / <version> = dependency 라이브러리의 버전 / <scope> = 해당 라이브러리의 이용 범위를 지정 / <optional> = 다른 프로젝트에서 이 프로젝트를 dependency 설정을 할 경우 사용할지 결정

- scope 태그 설정 값 :

compile (default) = 아무것도 지정하지 않았을 경우 설정되는 값, 이 값으로 설정하는 경우 모든 클래스 경로에서 사용할 수 있음. 컴파일 및 배포 상황에서 같이 제공됨.

provided = compile과 유사하지만 JDK 혹은 Container가 런타임 시에만 제공. 컴파일 혹은 테스트 경로에서만 사용하며, 배포시에는 빠짐

runtime = 컴파일 시에는 사용하지 않고, 실행 상황에서만 사용됨. 런타임과 테스트 경로에서는 있지만, 컴파일 클래스 경로에는 존재하지 않음.

test = 테스트 상황에서만 사용되는 라이브러리. 실 가동 상황에서는 필요없는 라이브러리를 사용할 경우에 설정. 종속된 다른 프로젝트에는 영향을 미치지 않음.

system = provide와 유사하지만 저장소에서 관리되지 않고 직접 관리하는 JAR을 추가. systemPath를 추가해서 작성해야 함.

 

현재 시점에 설정되어 있는 라이브러리 설명 :

- Spring Boot Starter Parent = 프로젝트에서 사용하는 다양한 라이브러리 간의 버전 충돌 문제가 발생할 수 있는 것을 방지. dependency 조합간 충돌 문제가 없는 검증된 버전 정보 조합을 제공

- Spring Boot Starter Web = Spring MVC를 사용한 REST 서비스를 개발하는데 사용

- Spring Boot Starter Test = JUnit, Hamcrest, Mockito를 포함한 스프링 어플리케이션의 테스트 기능을 제공.

 

// lombok이 하는 일 = 메소드들을 만들지 않고 어노테이션으로 그 기능들을 대체를 해주는 편리한 기능

반응형

'Spring' 카테고리의 다른 글

Get API 만드는 방법 노트  (0) 2022.10.30
MVC Pattern 노트  (0) 2022.10.29
REST API 노트  (0) 2022.10.27
Maven & Gradle 노트  (0) 2022.10.26
Spring & Spring Boot 노트  (0) 2022.10.25

댓글