pom.xml 설정하기 - 스프링부트 기초

Yunjisang·2023년 11월 17일

Spring boot 기초

목록 보기
1/3

pom.xml

Maven 프로젝트를 생성하면 루트 디렉토리에 생성되는 파일

Project Object Model 정보를 담고 있음

주요 설정 정보

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

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

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

프로젝트 기본 정보

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

  1. <name> : 프로젝트명

  2. <url> : 프로젝트 사이트 url

  3. <description> : 프로젝트에 대한 간단한 설명

  4. <organization> : 프로젝트를 관리하는 단체 설명

프로젝트 연관 정보

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

  1. <groupId> : 프로젝트의 그룹 ID 설정

  2. <artifactId> : 프로젝트 아티팩트 ID 설정

  3. <version> : 프로젝트의 버전

  4. <packaging> : 패키징 타입 설정

    • jar : 자바 프로젝트 압축 파일
    • war : 웹 어플리케이션을 위한 압축 파일

프로젝트 의존 설정

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

  1. <dependencies> : 라이브러리 의존성 정보를 가지고 있는 dependency 태그를 묶은 태그

  2. <dependency> : 라이브러리의 정보를 담는 태그

  3. <groupId> : 의존성 라이브러리의 그룹 ID

  4. <artifactId> : 의존성 라이브러리의 아티팩트 ID

  5. <version> : 의존성 라이브러리의 버전

  6. <scope> : 해당 라이브러리의 이용 범위를 지정

    • compile ( detault ) : 아무것도 지정되지 않았을 때의 설정값, 모든 클래스 경로에서 사용할 수 있음.

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

    • runtime : 컴파일 시에는 사용하지 않고, 실행 상황에서만 사용됨, 컴파일 클래스 경로에서는 존재하지 않음

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

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

  7. <optional> : 다른 프로젝트에서 이 프로젝트를 의존성 설정을 할 경우 사용할지 결정

자주 사용하는 라이브러리 설명

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

  2. Spring Boot Stater Web : Spring MVC를 사용한 REST 서비스를 개발하는데 사용

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

profile
BalhyoHongsam

0개의 댓글