Maven 은 유대어로 누산지식을 뜻하며, 자카르타 터빈(turbine) 프로젝트에서 단순한 빌드 프로세스를 위해 시작되었다. 각 각의 프로젝트에는 각 각의 Ant 빌드 파일이 있는데, 각 각은 약간씩 다르고, JAR 파일도 약간 다른 파일들이 CVS에 체크되어 있어서 표준화하기 위한 프로젝트로 프로젝트 구성의 명확한 정의와 프로젝트 정보를 쉽게 공개하기 위한 방안으로 시작된 프로젝트이다. 즉, Ant의 발전형이다.
Ant 와 비교하여 Maven의 장점
- 정형화된 절차 제공 : Ant는 모든 과정을 사용자가 작성해야 하지만, Maven은 컴파일, 패키지, 태스트 등 작업 프로세스를 정형화 시키고 이를 준수하도록 강제한다. 프로젝트의 소스 트리 구성도 패턴을 따르도록 제시하고 있다.
- 라이브러리 의존성 해결을 자동화 : 오픈 소스 라이브러리인 경우 Maven은 중앙 저장소(central repository)에 모두 저장하고 있어서, 의존성이 있는 라이브러리의 명세만 입력해주면, 자동으로 다운로드하여 class path에 걸어주기 때문에 따로 처리할 필요가 없다.
- 라이브러리 관리 편의성 : 보통 소스를 개발할 때, 라이브러리를 SCM(Software Configuration Management) 툴에서 관리하는데, 이는 불필요한 공간을 낭비하게 할 뿐아니라, 버전 별 관리도 어렵게 한다. Maven에서는 라이브러리 전용 레파지토리를 제공하므로, 통합관리가 가능하다.
Maven의 목표
- 빌르 처리를 쉽게 만들기
- 통일된 빌드 시스템 공급
- 프로젝트 정보의 퀄리티 공급
- 최상위 개발 가이드 라인 제공
■ maven 사용하기
Ant에서는 build.xml 파일에 프로젝트의 빌드, 태스크, 디폴로이 등을 기술한다면, Maven에서는 pom.xml 파일을 이용한다. pom.xml 에는 다음과 같은 정보를 저장하고 있다.
- 프로젝트 정보 : 프로젝트의 이름, 개발자 등
- 빌드 정보 : 플러그인 등 빌드의 관련된 설정을 기술
- 의존성, 연관성 정보 : 의존 프로젝트(모듈), 상위 프로젝트, 포함하고 있는 하위 모듈 등을 기술
기본적인 pom.xml 파일 형태
<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.0http://maven.apache.org/maven-v4_0_0.xsd">
<!-- 프로젝트 정보 -->
<modelVersion>4.0.0</modelVersion>
<groupId>MavenTestProject</groupId>
<artifactId>MavenTestProject</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<!-- 빌드 정보 -->
<build>
<plugins>
<plugin>
<!-- java 1.5 이상의 문법을 지원하기 위해서는 다음 설정이 필요하다. -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
<!-- 의존성 정보 -->
<dependencies>
<dependency>
<!-- 서블릿 소스를 컴파일 하기 위해 필요하다. -->
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
참 고 출 처 : http://alexk.springnote.com/pages/3501753
'Java2EE Framework > Maven' 카테고리의 다른 글
Maven 디렉토리 구조 (0) | 2010.06.19 |
---|---|
이클립스 갈릴레오 SR-2 Maven 이클립스 플러그인 설치 (0) | 2010.06.18 |