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>