Develop

[Spring] pom.xml 이란? + 태그 본문

웹 개발/Spring

[Spring] pom.xml 이란? + 태그

개발 기록 2024. 3. 4. 13:52

 

Maven 프로젝트를 생성하면 pom.xml이 자동으로 생겨서 무엇인지 알아보았다.

 

 


Maven이란?

자바 프로젝트를 관리하는 툴이다.

미리 작성된 xml 파일을 이용하여 라이브러리를 자동으로 다운로드 하거나 프로젝트를 빌드해준다.

즉, 자바 소스를 컴파일하고 패키지하여 deploy(소프트웨어 전개)까지 자동화 해준다.

 

pom.xml 이란?

Maven의 빌드 정보를 담고 있는 파일이다.

POM(Project Object Model) 을 설정하는 부분으로 프로젝트 내의 빌드 옵션을 설정하는 파일이다.

 

 

pom.xml의 태그 종류

태그 기능
<project> Maven의 XML 네임스페이스를 지정
<modelVersion> Maven의 model Version
<groupId> 그룹 ID 
<artifactId> 아티팩트 ID 
<version> 버전 이름
<packaging> 패키징 형식을 지정
<name> 프로젝트의 이름
<url> Maven의 url
<properties> 프로젝트 관련 속성
<parent> pom.xml의 상속에 관련된 태그
<dependencies> 프로젝트가 의존하는 라이브러리들의 정보

 

 

<dependencies> 안에 들어가는 태그 종류

태그 기능
<dependency> 라이브러리를 정의
<groupId> 라이브러리의 그룹 ID
<artifacId> 라이브러리의 아티팩트  ID
<version> 라이브러리의 버전
<scope> 라이브러리가 프로젝트 내에서 사용되는 범위

 

* 라이브러리의 최신 버전을 확인하는 방법은 아래의 Maven 사이트에서

그룹아이디나 아티팩트 아이디를 검색하여 찾으면 된다.

 

https://mvnrepository.com 

 

 


 

 

pom.xml 이 처음 생성되었을 때

<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>Tiles</groupId>
  <artifactId>Tiles</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
          <release>11</release>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.2.3</version>
      </plugin>
    </plugins>
  </build>
</project>

 

위에서 배운 태그를 바탕으로 해석해보면

 

- <modelVersion> : Maven의  model Version : 4.0.0

- <groupId> : 그룹 ID : Tiles

- <artifactId> : 아티팩트 ID : Tiles

- <version> : 버전명 : 0.0.1-SNAPSHOT

- <packaging> : 패키징 형식 : war

 


 

참고한 글

 

[Spring] Maven, pom.xml이 뭐에요?(정의) (tistory.com)

 

[Spring] Maven, pom.xml이 뭐에요?(정의)

spring을 처음 배우기 시작할 때에 pom.xml에 dependency~해서 뭔지도 모르는 코드를 막 적으라한다. 왜 적나, 적으면 뭐가 달라지는지 궁금해진다.(물론 저만의 생각일 수도 >,.target>pom.xml 파일을 열자.

coding-hyeok.tistory.com