POM File(pom.xml)에 대한 소개

  • 5 minutes to read

Maven 프로젝트에서 pom.xml 파일은 프로젝트의 핵심 구성 요소로, 프로젝트의 메타데이터, 빌드 설정, 의존성 관리 등을 정의하는 데 사용됩니다. 이 문서에서는 POM 파일의 구조와 주요 요소들에 대해 소개합니다.

POM 파일이란?

POM(Project Object Model) 파일은 Maven 프로젝트의 기본 단위로, XML 형식으로 작성됩니다. pom.xml 파일은 프로젝트의 루트 디렉터리에 위치하며, Maven이 프로젝트를 빌드하고 관리하는 데 필요한 모든 정보를 담고 있습니다.

POM 파일의 주요 역할

  • 프로젝트 정보 제공: 프로젝트의 이름, 버전, 설명, 개발자 정보 등을 정의합니다.
  • 의존성 관리: 프로젝트에서 사용하는 라이브러리와 플러그인을 관리하고, 빌드 시 자동으로 해당 의존성을 다운로드하고 추가합니다.
  • 빌드 설정: 컴파일, 테스트, 패키징, 배포 등과 같은 빌드 과정에 필요한 설정을 정의합니다.
  • 프로파일 관리: 여러 환경에서 다른 설정을 사용해야 할 때, 프로파일을 정의하여 상황에 맞는 빌드 구성을 제공합니다.

POM 파일의 기본 구조

<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">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>java-campus</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>java-campus</name>
    <description>Example project for Maven</description>

    <properties>
        <java.version>17</java.version>
    </properties>

    <dependencies>
        <!-- 의존성 목록 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <!-- 플러그인 목록 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

주요 요소 설명

  1. modelVersion: POM 모델의 버전을 지정합니다. 현재 대부분의 프로젝트에서는 4.0.0을 사용합니다.

  2. groupId: 프로젝트의 그룹 또는 조직을 나타내는 고유 식별자입니다. 일반적으로 도메인 이름을 반대로 사용합니다. 예: com.example.

  3. artifactId: 프로젝트의 고유 식별자입니다. 프로젝트 이름과 동일하게 설정하는 것이 일반적입니다.

  4. version: 프로젝트의 버전을 나타냅니다. 개발 중인 프로젝트에는 -SNAPSHOT 접미사를 붙여 개발 버전임을 나타냅니다.

  5. packaging: 빌드 결과물의 형태를 지정합니다. 기본값은 jar이며, 웹 애플리케이션의 경우 war로 설정할 수 있습니다.

  6. name: 프로젝트의 이름입니다. Maven 사이트 또는 빌드 출력에서 사용됩니다.

  7. description: 프로젝트에 대한 간단한 설명입니다.

  8. properties: Maven 빌드에 사용되는 사용자 정의 속성을 정의합니다. 예를 들어, Java 버전을 지정할 수 있습니다.

  9. dependencies: 프로젝트에서 사용되는 의존성 라이브러리를 나열합니다. Maven은 여기에 정의된 라이브러리를 자동으로 다운로드하여 클래스패스에 추가합니다.

  10. build: 프로젝트 빌드 시 사용되는 플러그인과 관련 설정을 정의합니다. 예를 들어, Spring Boot 애플리케이션의 경우 spring-boot-maven-plugin을 포함할 수 있습니다.

추가 설명

  • 프로파일 관리: POM 파일 내에서 <profiles> 요소를 사용하여 개발, 테스트, 프로덕션 등 여러 환경에 맞는 빌드 구성을 정의할 수 있습니다. 각 프로파일은 서로 다른 설정을 가질 수 있으며, 빌드 시 특정 프로파일을 활성화하여 빌드를 실행할 수 있습니다.

  • 상속과 모듈: 다중 모듈 프로젝트에서는 부모 POM을 사용하여 공통 설정을 상속하거나, 여러 모듈을 정의하여 대규모 프로젝트를 관리할 수 있습니다.

POM 파일은 Maven 프로젝트의 중심이 되는 구성 파일로, 프로젝트의 모든 빌드, 배포, 의존성 관리 기능을 제어합니다. POM 파일의 구조와 각 요소를 이해하면 Maven을 효과적으로 활용하여 프로젝트를 관리할 수 있습니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com