Maven 입문 | Maven 준비 | Apache Maven란?


Java 프로그래머에게 사실상 표준이라고 할 수 있는 빌드 도구는 “Apache Maven"이다.

이것은 Apache Software Foundation이 개발을 진행하고 있는 오픈 소스의 빌드 도구이다. 이 Maven에서 지원되는 몇 가지 이유가 있다.

  • 원래 Java 사이에서는 Ant라는 빌드 도구이 널리 사용되고 있었다. Maven은 Ant의 후계자라고도 할 수 있는 것으로, 자연스러운 흐름으로 Ant에서 Maven으로 전환되어 어느새 사실상의 표준이되고 있었다는 느낌이 있다.

  • Maven의 가장 큰 업적은 “중앙 저장소"라는 것을 준비한 것이다. 이것은 Java에서 사용되는 다양한 라이브러리와 프로그램들을 집중 관리하는 서버에서 Maven은 이 서버에 접속하여, 필요한 프로그램을 다운로드하여 프로젝트에 설치한다. 즉, 개발자가 라이브러리 등을 직접 설치하거나 관리할 필요가 없다. Maven 이외의 빌드 도구에서도 이 Maven 중앙 리포지토리에 사용하고 있는 것이 많다.

  • Maven은 XML으로 빌드 파일을 만든다. XML을 사용하는 점에 대해서는 견해 차이가 있겠지만 필요한 정보를 알기 쉽게 구조적으로 설명하는 것으로서 XML은 널리 사용되고 있으며, 비교적 쉽게 받아 들일 수 있다. 또한 XML은 구조가 탄탄하고 분석하기 쉽기 때문에, 개발 도구에서는 전용의 비주얼 에디터 등을 많이 지원하고 있다.

다른 장점은 다양하게 있겠지만, “XML 기반 비교적 알기 쉽게 프로젝트에 사용할 라이브러리 등도 모두 함께 관리 해준다"는 것만으로 Maven을 이용하는 의미는 크다.

Maven VS Ant

Ant와 Maven은 모두 Apache에서 제공하는 빌드 도구이다. 빌드 도구의 주된 목적은 프로젝트 구축 프로세스를 쉽게하는 것이다.

Ant와 Maven 사이에는 다음과 같은 많은 차이점이 있다.

Ant Maven
Ant에는 공식적인 규칙이 없으므로 build.xml 파일에 프로젝트 구조에 대한 정보를 제공해야 한다. Maven는 소스 코드, 컴파일 코드 등을 배치하기 위한 규약을 가지고 있다. 따라서 pom.xml 파일에 대한 프로젝트 구조에 대한 정보를 제공할 필요가 없다.
Ant는 절차 적입니다. 코드를 통해 할 일과 수행시기에 대한 정보를 제공해야 한다. 순서를 지정을 해야 한다. Maven은 선언적이며 모든 것을 pom.xml 파일에서 정의한다.
Ant에는 수명주기(life cycle)가 없다. Maven에는 수명주기(life cycle)가 있다.
도구(tool) 형태이다. 프레임워크 형태이다.
주기능은 빌드 툴(build tool)이다.. 프로젝트 관리 도구(project management tool)이다.
Ant 스크립트는 재사용 할 수 없습니다. maven 플러그인은 재사용 할 수 있다.
Maven보다는 비선호적이다. Ant보다 더 좋다.