상세 컨텐츠

본문 제목

[MAVEN] Maven 개념 정리

개발/Tools

by 대충고양이짤 2015. 2. 5. 17:29

본문




Maven(메이븐) 이란?

메이븐(Maven)은 빌드 자동화 도구이자, 소프트웨어 이해 도구이다. 주로 자바 프로그래핑에 사용되나 C#, Ruby, Scalar등 다른 언어에도 사용된다. 메이븐은 아파치 앤트와 유사한 목적성을 제공하나, 다른 수준의 깊이와 개념에 근거해 작동한다. 아파치 소프트웨어 제단에서 호스팅되고 있다.

<출처 : wikilipse>



Maven은 Apache Software foundation에서 개발하고 있는 소프트웨어 프로젝트 관리 툴이다.


프로젝트 객체 모델(Project Object Model)이라는 개념을 바탕으로 프로젝트 의존성 관리, 라이브러리 관리, 프로젝트 생명주기 관리 기능 등을 제공한다. 또한 플러그인을 기반으로 소스코드로부터 배포 가능한 산출물을 만들어 내는 빌드 기능 뿐만 아니라 레포팅 및 documentation 작성 기능 등을 제공한다.




Maven의 기능

  • 프로젝트 라이브러리 관리
  • 프로젝트 정보의 전달
  • 프로젝트 작성부터 컴파일, 테스트, 패키지, 배치 등의 프로젝트 라이프사이클에 포함되는 각 태스트 지원



Maven의 목적

  • 빌드 프로세스를 쉽게
  • 빌드 시세틈의 단일화 제공
  • 양질의 프로젝트 정보를 제공
  • 개발의 가이드 라인을 지원
  • 새로운 기능에 대한 투명한 통합 제공



Maven의 장점

  • 뛰어난 의존성(dependency) 관리
  • - 의존성 자동 업데이트 : lib를 자동으로 다운받음
  • - 저장소를 통한 라이브러리 일괄 관리  : .m/repository 하위에 모든 lib 관리
  • 모든 프로젝트에 걸쳐 쉽게 적용 가능한 일관적인 사용법 : pom.xml 설정 + mvn build 콤보로 쉽게 적용 가능
  • 라이브러리 및 메타 데이터 저장을 위한 지속적으로 확장되고 있는 저장소 : .m/repository 폴더
  • 쉽게 작성 가능한 플러그인을 통한 확장성
  • 동시에 다수의 프로젝트를 핸들링 할 수 있는 쉬운 설정 기반의 메커니즘 : 빌드 방법과 디렉토리 구성이 동일
  • 간단한 설정을 통한 배포 관리
  • Java, C++ 등 다수의 프로그래밍 언어 지원



Maven의 단점

  • pom.xml 파일 관리 : 메이븐 프로젝트 관리에 대한 모든 내용이 pom.xml 파일에 담기게 되어 파일이 길고 장황하게 될 수 있음



참고 사이트 


'개발 > Tools' 카테고리의 다른 글

NFC, RFID, 바코드, 블루투스, MST  (0) 2015.05.18
[Server] Server Push 개념  (0) 2015.02.27
[Security] 무차별 대입 공격  (0) 2015.01.29
JSON 이란?  (0) 2015.01.21
RawCap - 패킷 스니퍼  (0) 2015.01.05

관련글 더보기

댓글 영역