본문 바로가기

이론정리

pom.xml(Project Option Model)이란

개요

Maven Project에서 필요한 라이브러리를 정의하는데 사용된다. 최초 pom.xml생성 시 생성되어 있는 기본 라이브러리에 개발자가 필요한 라이브러리를 추가 구성해서 사용할 수 있다. 라이브러리 추가 시 네트워크를 통해 해당 라이브러리와 그 라이브러리를 작동하는데 필요한 다른 라이브러리도 다운 받는다.

 

구조

<?xml version="1.0" encoding="UTF-8"?>
<project>
	<!-- 프로젝트 정보 -->
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.mytest</groupId>
	<artifactId>spring</artifactId>
	<name>MyTest01</name>
	<packaging>war</packaging>
	<version>1.0.0-BUILD-SNAPSHOT</version>
    
    <!-- 프로퍼티 -->
    <properties>
		<java-version>1.6</java-version>
		<org.springframework-version>3.1.1.RELEASE</org.springframework-version>
		<org.aspectj-version>1.6.10</org.aspectj-version>
		<org.slf4j-version>1.6.6</org.slf4j-version>
    </properties>
    <dependencies>
    	<!-- Spring -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>${org.springframework-version}</version>
			<exclusions>
				<!-- Exclude Commons Logging in favor of SLF4j -->
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				 </exclusion>
			</exclusions>
		</dependency>
        ...
    </dependencies>
</project>

위 코드는 eclipse에서 spring legacy project를 MVC 패턴으로 생성 시 자동으로 생성되는 pom.xml 파일을 간략화한 것 입니다.

 

properties

pom.xml에서 사용할 변수를 정의해 놓은 코드 블럭. <org.springframework-version> 로 정의된 변수가 <dependency>의 <version> 블럭에서 ${org.springframework-version} 로 사용되었다.

 

dependencies

프로젝트에서 사용할 의존성 라이브러리를 정의한 코드 블럭. Maven repository 사이트(mvnrepository.com/)에서 필요한 라이브러리 정의를 가져다가 사용할 수 있다.

 

참고

maven.apache.org/guides/introduction/introduction-to-the-pom.html

'이론정리' 카테고리의 다른 글

web.xml, root-context.xml, servlet-context.xml 이란?  (0) 2020.11.15
Mapper란?  (0) 2020.11.15
JUnit이란  (0) 2020.11.15