POM ( Project Object Model )
POM은 프로젝트의 구조와 내용을 설명하고 있으며 pom.xml 파일에 프로젝트 관리 및 빌드에 필요한 환경 설정, 의존성 관리 등의 정보들을 기술합니다.
프로젝트의 세부 메타데이터 정보를 포함한다.
- 버전 및 설정 관리, 빌드 환경, 라이브러리 저장소 및 의존성 등등
최소한의 POM 구성
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1</version>
</project>
- project root
- modelVersion - 4.0.0로 설정
- groupId - 프로젝트 그룹 ID
- artifactId - artifact(프로젝트) Id
- version - 명시된 그룹의 artifact 버전
위에 정의한 POM은 메이븐이 허용한 최소값입니다. 여기서 groupId, artifactId, version 모두 필수 필드이지만 groupId, artifactId, version은 상위 항목에서 상속된 경우 명시적으로 정의할 필요가 없습니다. groupId, artifactId, version 대한 자세한 의미와 명명 규칙은 링크를 참고해주세요.
POM.xml을 좀 더 직관적으로 이해하기 위해 maven 프로젝트에 스프링프레임워크를 적용해 보도록 하겠습니다.
POM.xml에 다음과 같이 Spring framework 라이브러리의 의존성 주입을 설정 합니다. POM.xml 수정 후 eclipse에서 maven update를 해주세요
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.0.RELEASE</version>
</dependency>
</dependencies>
<?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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>springMaven</groupId>
<artifactId>pomSetting</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.0.RELEASE</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>utf-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
Spring framework 라이브러리의 의존성 주입이 된 프로젝트의 Maven Dependencies를 확인해 보면 spring-webmvc는 spring-core, spring-context, spring-web, spring-aop, spring-beans, spring-expression에 대한 의존성이 포함되기 때문에 이러한 의존 라이브러리들이 자동으로 포함되어진 것을 볼 수 있습니다. 라이브러리는 C:\Documents and Settings\Administrator\.m2\repository 경로에 확인 가능합니다.
즉 POM.xml 파일에 라이브러리 A, B를 명시에 놓으면 원격 Repository에 있는 라이브러리가 내 컴퓨터로 다운되어 프로젝트에 해당 라이브러리를 쉽게 사용할 수 있도록 하는 역할을 하는 것입니다.
※ 모듈의 라이브러리 파일명은 artifactId + "-" + 버전명 +".jar" 로 표시
댓글