본문 바로가기
Programming/Maven

Maven이란

by 막이 2013. 3. 20.

1. http://maven.apache.org/what-is-maven.html

2. 소개

- Jakarta Turbine project 에서 빌드 프로세스들을 간단화하기 위해 시도한 것이 초시다.

- 여러 프로젝트에서 프로젝트 정보나 jar파일들을 공유하기 쉽게 하길 원함.

- Maven은 지금까지 애플리케이션을 개발하기 위한 반복적으로 진행해 왔던 작업들을 지원하기 위하기 등장한 툴이다. Maven이 지원하는 작업은 다음과 같다.

  • Builds
  • Documentation
  • Reporting
  • Dependencies
  • SCMs
  • Releases
  • Distribution

Ant 를 이용하여 지금까지 위 작업 중의 일부(Builds, Reporting 등) 작업을 진행해 왔지만 일관된 가이드안이 없는 상태였기 때문에 프로젝트를 진행할 때마다 대부분의 작업을 반복해야 했다. 그러나 Maven의 경우에는 프로젝트 관리를 위하여 필요한 모든 작업을 추상화하여 툴이 지원하도록 구현했다.

Ant를 사용하다 Maven을 처음 시작하는 개발자들은 Maven의 제약사항에 거부감을 느낄 수 있다. Ant만큼 자유도가 높지는 않지만(물론 Ant의 빌드 스크립트와 통합하는 것도 가능하다.) Ant를 사용하면서 반복해야 했던 많은 작업들을 줄여준다. 이 같은 효과는 모든 프로젝트를 일관된 구조로 관리, 배포, 운영하는 것이 가능하기 때문에 프로젝트의 복잡도가 증가하고 있는 최근에는 적합한 툴이라 생각한다.

3. Maven's Objectives

  • Making the build process easy
  • Providing a uniform build system
  • Providing quality project information
  • Providing guidelines for best practices development
  • Allowing transparent migration to new features
  • 4. Maven을 사용할 경우 얻게 되는 잇점은?

    Maven을 사용하면서 얻게 되는 잇점은 Benefits of using Maven 문서를 통하여 확인할 수 있다.
    필자 또한 Maven 사용할 경우 너무 많은 잇점을 얻을 수 있을거 같아 모두 정리하기 힘들거 같다. 그래도 정리한다면 다음 항목을 최우선적으로 이야기하고 싶다.

    • 편리한 Dependent Library 관리 기능 - Dependency Management
    • 모든 프로젝트의 빌드 프로세스를 일관되게 가져갈 수 있다는 것
    • Maven이 제공하는 많은 플러그인의 활용이 가능하다는 것. 특히 Maven 프로젝트를 Eclipse 기반 프로젝트로 쉽게 변환이 가능한 기능
    • 신규 프로젝트 세팅을 정말 쉽고 빠르게 진행할 수 있다. Maven의 archetype 기능은 정말 만족할 만하다

    'Programming > Maven' 카테고리의 다른 글

    메이븐 빌드 - Fatal error compiling: tools.jar not found  (0) 2014.11.20
    pom.xml  (0) 2014.06.26
    Maven에 ojdbc14 디펜던시 넣기  (0) 2012.05.15