pom.xml은 Maven Project의 설정 파일입니다.
Maven Project를 생성하고 pom.xml을 수정해야 합니다.
VScode에서 XML 확장자 설치 후 편집하시면 편합니다.
XML 열기 -> pom.xml 파일을 열고 우클릭 후 Open With -> Other -> External programs -> Code Worksapce Source File
** 추천 확장자 **
더보기
- XML
- XML Tools
- XML Format
- XML to JSON
Maven을 생성 후 pom.xml의 최상단에 다음의 DOCTYPE 태그를 추가해야 합니다.
<?xml version = "1.0" encoding = "UTF-8"?>
그 후 <project> 태그의 속성을 가독성 있게 정리합니다.
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
그 아래 태그들은 넘어갑니다.( groupId, artifactId, version )
<packaging> 태그는 Apache Maven을 통해 진행한 프로젝트의 최종 파일의 확장자를 결정 합니다.
여기서 pom.xml은 jar 확장자로 되어 있습니다.
웹앱 프로젝트에서는 war 확장자 로 되어 있습니다.
<packaging>jar</packaging>
<!-- <packaging>war</packaging> -->
- <name> 태그는 진행하는 프로젝트의 이름입니다.
- <name> 태그 아래의 <url>은 프로젝트의 주소를 입력하는 곳인데 일반적으로 잘 사용하지 않습니다.
<properties> 태그는 속성을 정의합니다.
<properties> 가 감싸고 있는 부분은 자바 버전, 자바의 환경변수를 세팅합니다.
태그의 이름은 사용자가 임의로 지을 수 있습니다.
<!-- 현재 프로젝트에 필요한 속성을 정의하는 태그-->
<properties>
<java-version>17</java-version>
<java-home>${env.JAVA_HOME}</java-home>
<!-- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> defualt -->
</properties>
그리고 <properties> 태그 위 아래로 두 칸씩, 사용자 정의 속성과 Encoidng은 1칸씩 공백을 두어 가독성을 높입니다.
그 아래 <dependencies> 태그는 필요한 라이브러리, 즉 의존성을 정의 합니다.
의존성은 Maven Repository에서 <dependency> 태그로 넣으시면 됩니다.
추가된 의존성은 Maven Project 내부에 Maven Dependencies에서 확인할 수 있습니다.
자세한 의존성 정의 방법은 추후에 다루겠습니다.
저는 junit5와 lombok 의존성을 추가하였습니다.
<dependencies>
<!-- 테스트 코드 api -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
<!-- 추가된 롬복 의존성 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<!-- 의존성의 버전 -->
<version>1.18.28</version>
<!-- scope의 provided는 컴파일에 필요하며 Runtime일 때 제거한다는 의미 -->
<!-- scoop 태그를 삭제하면 default가 compile -->
<!-- 롬복은 런타임 시에도 필요하므로 scope 태그 제거 -->
<!-- <scope>provided</scope> -->
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.20.0</version>
</dependency>
</dependencies>
의존성이 잘 정의됐는지 Dependency Hierarchy로 계층 구조를 확인합니다.
Dependency Hierarchy
log4j-core 의존성을 추가하면 log4j-api는 자동으로 추가됩니다.
마지막으로 <build> 태그를 정의합니다.
<build> 태그는 eclipse의 기능을 확장시키는 <plugin> 태그를 사용하기 위함입니다.
만약 웹앱 프로젝트로 생성하였다면 war 플러그인도 추가 합니다.
<build>
<finalName>/</finalName>
<plugins>
<!-- 웹앱 프로젝트 추가 플러그인 -->
<!-- <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.4.0</version>
</plugin> -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.10</version>
<configuration>
<downloadSources>true</downloadSources>
<!-- <downloadJavadocs> == 자바 공식문서 다운로드 결정 -->
<downloadJavadocs>false</downloadJavadocs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<release>${java-version}</release>
</configuration>
</plugin>
</plugins>
</build>
</project>
pom.xml을 단 1글자라도 수정하면 Maven project를 무조건 업데이트 해야 합니다.
Maven Project를 선택하고 상단 Project 메뉴에 "Update Maven Project"로 진행합니다.
단축키는 "Alt + F5"를 누르시면 됩니다.