Spring

[Spring] maven 빌드 pom.xml 구성

Rosie_dev 2021. 10. 28. 20:26

spring framework에서 maven 빌드를 선택하면 pom.xml이 자동 생성된다. POM(Project Object Model)을 설정하는 부분으로 프로젝트 빌드 옵션을 설정하는 부분이다.

 

기존 프로젝트에서 사용된 pom.xml의 일부분을 나눠 설명하면 다음과 같다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.spring</groupId>
    <artifactId>groupware</artifactId>
    <name>Project</name>
    <packaging>war</packaging>
    <version>1.0.0-BUILD-SNAPSHOT</version>
    <properties>
      <java-version>1.8</java-version>
      <org.springframework-version>4.3.4.RELEASE</org.springframework-version>
      <org.aspectj-version>1.6.10</org.aspectj-version>
      <org.slf4j-version>1.6.6</org.slf4j-version>
      <org.apache.tiles-version>3.0.7</org.apache.tiles-version> 
    </properties>
cs

 

<modelVersion> maven pom.xml 모델 버전을 정의하는 태그로 4.0.0 버전임을 알 수 있다.

 

<groupId> 프로젝트 생성 조직이나 그룹명을 알 수 있는 태그다. 

 

<artifactId> 프로젝트 아티팩트의 고유명이다.

 

<name> 프로젝트 명

 

<packing>

패킹을 하는 방식을 설정할 수 있다. jar와 war, ear, pom 등이 있으며, 위 pom.xml은 war로 패킹함을 알 수 있다.

 

<version>

애플리케이션의 버전을 표시하는 것이다. version에 SNAPSHOT이라는 단어가 있음으로 아직 개발 중임을 알 수 있다.

 

<properties>

pom.xml의 다른 위치에서 properties 내의 태그를 ${properties 하위태그명}와 같은 방식으로 해당 태그의 val값을 적용할 수 있다. 공통적으로 사용할 버전이나 설정값에 대한 정보를 담아 보기 쉽게 하기 위한 용도로 사용된다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
    <repositories>
        <repository>
            <id>codelds</id>
            <url>https://code.lds.org/nexus/content/groups/main-repo</url>
        </repository>
    </repositories>
    
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
    </dependencies>
cs

 

라이브러리 설정을 위해 pom.xml 기본 구성을 변경해서 커스터마이즈할 수 있다. 여기서 라이브러리 추가를 위한 태그는 <repositories><dependencies>로 나뉜다.

 

<repositories> 저장소 태그.  라이브러리를 받아올 저장소.

<dependencies> 프로젝트에서 사용되는 라이브러리들을 지정. 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
   <build>
        <plugins>
            <plugin>
                <artifactId>maven-eclipse-plugin</artifactId>
                <version>2.9</version>
                <configuration>
                    <additionalProjectnatures>
                        <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
                    </additionalProjectnatures>
                    <additionalBuildcommands>
                        <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
                    </additionalBuildcommands>
                    <downloadSources>true</downloadSources>
                    <downloadJavadocs>true</downloadJavadocs>
                </configuration>
            </plugin>
        </plugins>
    </build>
cs

 

<build> 태그 내에 <plugin>

<plugin>의 사용은 다양한데, maven 공식사이트에서 그 종류를 볼 수 있다. 위 코드에서 사용된 것은 Apache Maven Artifact Plugin이다. 현재 빌드 결과를 재현 가능한 빌드 buildinfo 파일에 기록하고 이전에 게시된 참조 빌드와 확인하는 것을 목표로 한다.

maven-eclipse-plugin은 이클립스에서 maven 프로젝트를 import해서 사용할 수 있도록 지원하는 플러그인이다. 

 


'maven-eclipse-plugin' 태그의 글 목록 :: 자바캔(Java Can Do IT)

maven (메이븐 구조, 차이점, 플러그인, 라이프사이클, 의존성, pom.xml)

Maven 저장소와 의존성 관리

Maven project 제대로 사용하기 : pom.xml

메이븐(Maven)은 알고 스프링(Spring)을 쓰는가? (pom.xml 분석하며 가볍게 정리하는 빌드 툴, Maven)

[학습] pom.xml 이란..? : 네이버 블로그

오라클 드라이버 클래스 파일명별 설명

 

 

댓글