Back-end/JAVA,Spring

MAVEN 메이븐이란?

cheersHena 2018. 11. 8. 20:06
반응형


메이븐 MAVEN 


라이브러리 관리 + 프로젝트 빌드 툴. (eclipse에 기본탑재되어 있음)


프로젝트 진행하게 되면 수많은 라이브러리들을 활용해서 개발을 하게 된다. 이때 사용되는 라이브

러리들의 수가 수십, 수백개가 넘어가는 일이 발생해 이 많은 라이브러리들을 관리하는 것이 힘들어지는 문제가 생겼다. Maven은 이러한 문제를 해결해 주는 1.라이브러리 관리 도구이다. 

내가 사용하는 라이브러리 뿐만 아니라 해당 라이브러리가 작동하는데에 필요한 다른 라이브러리까지 관리하여 네트워크를 통해서 자동으로 다운 받아주고 설치 경로도 지정해 준다.


즉, 필요한 라이브러리를 특정 문서(pom.xml)에 정의해 놓으면 메이븐이 네트워크를 통해서 라이브러리들을 자동으로 다운받아준다. 

그러므로 우리는 라이브러리 파일을 다운받는 등 번거로운 짓을 할 필요 없이 pom.xml에 필요한 것을 명시해주기만 하면 된다.



Maven LifeCycle


메이븐에서는 미리 정의하고 있는 빌드 순서가 있으며 이 순서를 라이프사이클 이라고 한다.

라이프사이클의 각 빌드 단계를 Phase라고 한다. 각 phase들은 의존 관계를 가진다. 


자주쓰이는 라이프 사이클 단계.


 ■ Clean : 이전 빌드에서 생성된 파일들을 삭제하는 단계

 ■ Validate : 프로젝트가 올바른지 확인하고 필요한 모든 정보를 사용할 수 있는지 확인하는 단계

 ■ Compile : 프로젝트의 소스코드를 컴파일 하는 단계

 ■ Test : 유닛(단위) 테스트를 수행 하는 단계(테스트 실패시 빌드 실패로 처리, 스킵 가능)

 ■ Pacakge : 실제 컴파일된 소스 코드와 리소스들을 jar, war 등의 배포를 위한 패키지로 만드는 단계

 ■ Verify : 통합 테스트 결과에 대한 검사를 실행하여 품질 기준을 충족하는지 확인하는 단계
 ■ Install : 패키지를 로컬 저장소에 설치하는 단계

 ■ Site : 프로젝트 문서를 생성하는 단계

 ■ Deploy : 만들어진 package를 원격 저장소에 release 하는 단계


최종적인 빌드 순서는 compile-> test->package 이다. 


1) compile : src/main/java 디렉토리 아래의 모든 소스 코드가 컴파일 된다.


2) test : src/test/java, src/test/resources 테스트 자원 복사 및 테스트 소스 코드 컴파일 된다. * junit : 단위 테스트 프레임워크. 테스트 단계를 거치기 위해 의존 설정을 해준다.


3) packaging : 컴파일과 테스트가 완료 된 후, jar, war 같은 형태로 압축하는 작업.




POM - Project Object Medel [pom.xml]


프로젝트 객체 모델의 정보를 담고 있는 xml파일. 이 파일에서 주요하게 다루는 기능은

-프로젝트 정보:  프로젝트 이름, 개발자 목록, 라이센스 등..

- 빌드 설정: 소스,리소스,라이프사이클 별 실행 플러그인 등.. 빌드 관련 설정

- 빌드 환경: 사용자 환경 별로 달라질 수 있는 프로파일 정보

- pom 연관 정보: 의존 프로젝트(모듈), 상위 프로젝트, 포함하고 있는 하위 모듈 등..





반응형

'Back-end > JAVA,Spring' 카테고리의 다른 글

Java static 이란? 개념/사용법  (0) 2018.11.19
XML 이란? DTD 와 스키마  (0) 2018.11.19
log4J란? log4j설정법.  (0) 2018.11.08
Junit이란? 어노테이션  (0) 2018.11.08
마이바티스 란? mybatis 설정방법 및 순서.  (0) 2018.11.08