본문으로 바로가기

[JAVA] Maven이란?

category 프로그래밍/JAVA 2020. 3. 3. 01:20
728x90
반응형

Maven은 자바에서 사용하는 프로젝트 관리용 도구입니다.

오픈된 툴이기 때문에 사용에 문제는 없습니다.

저도 현재 Spring 프레임 워크에서 Maven을 사용 중에 있습니다.

Maven에는 다양한 기능이 많은데 주요 기능만 한번 정리해 보았습니다.

1. 컴파일 & 빌드

Maven을 사용하여 컴파일과 빌드를 동시에 수행할 수 있습니다.

컴파일과 빌드를 따로 하지 않고, 한 번에 할 수 있기 때문에 편리합니다.

2. 패키지

패키지를 배포함에 있어 편리하게 배포가 가능합니다.

최종 결과물을 war, jar 파일로 만들고, 그 파일들만 배포하면 프로그램을 동작시킬 수 있습니다.

3. 테스트

Maven에서는 유닛 테스트를 할 수 있도록 지원을 해주는 기능이 있습니다.

저는 테스트 기능을 skip 하기때문에, 아직 사용해 보지는 않았습니다.

4. 라이브러리 관리

프로젝트를 진행하면서 규모가 커짐에 따라 많은 라이브러리들을 사용하게 됩니다.

이 때, 라이브러리 들은 많으면 수백개가 넘어 버리게 되는데, 이에 대한 관리가 어렵습니다.

Maven은 이런 문제점을 해결 해줍니다.

pom.xml 파일에 라이브러리를 등록만 해주면, 해당 라이브러리가 동작하는데 필요한 라이브러리까지 모조리 네트워크를 통하여 다운로드해버립니다.

라이브러리 관리가 아주 편리합니다.

그로 인하여 유지보수, 오픈 소스 라이브러리, 프로젝트 등의 관리가 쉽습니다.

또한, 다른 작업 환경의 개발자들이 pom.xml 파일만 공유를 할 수 있다면, 에러 없이 정상 수행이 가능합니다.

5. 프로젝트 정보

pom.xml 파일의 내용을 통해 프로젝트의 정보를 알 수 있습니다.

pom.xml 모델 버젼, 프로젝트 groupid, 버젼, 프로젝트 명, 라이브러리 정보 등을 알 수 있습니다.

 

 

 

 


Maven은 동작방식이 정해져 있는데 이를 라이프 사이클이라고 부릅니다.

라이프 사이클은 총 9단계로 구성되어 있습니다.

1. Clean : 빌드시에 생성되었던 파일들을 삭제해줍니다.
2. Validate : 프로젝트가 정상적인지 확인을 합니다.
3. Compile : 프로젝트를 컴파일합니다.
4. Test : 단위 테스트를 수행합니다 ( 옵션에 따라서 skip이 가능합니다 )
5. Package : 컴파일 완료 후, 배포를 위하여 jar, war 파일로 만듭니다.
6. Install : 패키지를 설치합니다
7. Build : 프로젝트를 빌드합니다.
8. Site : 프로젝트 문서 등을 작성, 생성합니다
9. Deploy : 만들어진 패키지를 원격 저장소에 release 합니다.

이 중에 많이 사용하는 것은 Clean, Build, Site 입니다.

728x90
반응형