Notice
Recent Posts
Recent Comments
Link
관리 메뉴

데브마우스

[Spring] 메이븐을 환경 설정하는 pom.xml 정리 본문

Spring/Spring: 정리

[Spring] 메이븐을 환경 설정하는 pom.xml 정리

데브마우스 2024. 1. 16. 22:18

pom.xml이란 무엇인가요?

pom은 Project Object Model의 약자이며 pom.xml 파일에 xml 태그 형식으로 작성하여 프로젝트에 필요한 메이븐(Maven) 라이브러리를 설정합니다.

 

프로젝트 정보를 작성하는 <project> 태그

<?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 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.practice</groupId>
	<artifactId>practice</artifactId>
	<packaging>war</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<name>practice Maven Webapp</name>
	<url>http://maven.apache.org</url>
pom.xlm의 <project> 요소 정리
태그 설명
<modelVersion> POM 모델의 버전을 의미합니다.
<groupId> 스프링 MVC 프로젝트 생성 시 입력된 groupId가 자동으로 입력 됩니다.
<artifactId> 스프링 MVC 프로젝트 생성 시 입력된 artifactId가 자동으로 입력 됩니다.
<name> 프로젝트의 고유 name을 의미합니다.
<packaging> 프로젝트의 패키지 형태를 설정합니다. 웹 애플리케이션은 war로 설정되며 war는 Web Application ARchieve의 약자입니다.
<version> 프로그램 버전을 의미합니다.
메이븐의 이름 작성 규칙으로 완성되지 않은 버전은 SNAPSHOT으로, 완성된 배포 버전은 RELEASE로 작성합니다.

속성을 정의하는 <properties> 태그

<properties>
	<java-version>17</java-version>
	<org.springframework-version>5.3.19</org.springframework-version>
	<org.aspectj-version>1.6.10</org.aspectj-version>
	<org.slf4j-version>1.6.6</org.slf4j-version>
</properties>

 

 

pom.xml의 <properties> 요소 정리
태그 설명
<java-version> 자바 버전을 설정합니다.
<org.springframework-version> 스프링 프레임워크 버전을 설정합니다.
<aspectj 버전> AOP의 모듈 중 하나인 aspcet 버전을 설정합니다.
<org.slf4j-version> log를 남기는 log의 버전을 설정합니다.

의존성 라이브러리 정보를 설정하는 <dependencies> 태그

<dependencies>
	<!-- Spring -->
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-context</artifactId>
		<version>${org.springframework-version}</version>
	</dependency>
</dependencies>

 

빌드할 때 필요한 요소들을 설정하는 <build>태그

프로젝트를 빌드할 때 필요한 요소들을 <build> 태그 안에 설정합니다.

<plugin> 태그를 사용하여 빌드에서 사용할 플러그인을 설정할 수 있습니다.

<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>