IBM®
메인 컨텐츠로 가기
    Korea [국가변경]    이용약관
 
 
   
        제품    서비스 & 솔루션    고객지원 & 다운로드    회원 서비스    
메인 컨텐츠로 가기

한국 developerWorks  >  자바 | 오픈 소스  >

아파치 메이븐 2 시작하기 (한글)

developerWorks
Go to the previous page16 페이지 중 5 페이지Go to the next page

문서 옵션

샘플 코드


제안 및 의견
피드백

튜토리얼 평가

이 컨텐츠를 개선하기 위한 도움을 주십시오.


메이븐 2 생명주기, 단계, 플러그인, 모조

메이븐은 대부분의 빌드 작업을 할 때 플러그인을 활용한다. 메이븐 엔진이 플러그인들의 행위를 지휘한다고 생각해도 된다.

플러그인의 모조

플러그인이란 메이븐의 플러그인 프레임워크에 적합하도록 작성된 소프트웨어 모듈이다. 현재 커스텀 플러그인을 자바, Ant 또는 빈셸(Beanshell) 등을 사용하여 만들 수 있다. 각각의 플러그인의 작업을 모조라고 부른다. 일부에서는 플러그인을 연관된 모조들의 집합으로 보기도 한다. 커스텀 메이븐 2 플러그인을 작성하는 방법은 본 튜토리얼의 범위를 벗어난다. 이와 관련된 더 많은 정보를 원한다면 참고자료를 보기 바란다.

메이븐 2는 자주 사용하는 플러그인들을 미리 다운로드하여 사용할 수 있도록 패키징 한 상태로 배포했다. 대부분의 개발 작업에서는 추가 플러그인 사용이 필요가 거의 없다.

플러그인을 만들기 전에 반드시 웹 사이트(참고자료를 보기 바란다)에서 메이븐 2 플러그인 리스트에서 이미 만들어져 있는 것이 없는지 찾아 보길 권장한다. 그림 5는 여러 가용한 플러그인들에 대한 정보를 제공하는 메이븐 플러그인 매트릭스(참고자료를 보기 바란다)를 보여준다.


그림 5. 메이븐 플러그인 매트릭스
메이븐 플러그인 매트릭스



위로


모조를 생명주기 단계에 바인딩하기

플러그인을 사용한 모조(빌드 작업)는 메이븐 엔진이 빌드 생명주기에서 해당 단계를 실행할 때 수행된다. 플러그인의 모조와 생명주기의 특정 단계와의 연관을 바인딩(binding)이라고 한다. 플러그인 개발자들은 마음대로 한 개 이상의 생명주기 단계를 플러그인과 연관시킬 수 있다.




위로


기본 생명주기 단계

메이븐에 내장된 빌드 생명주기 이해는 여러 구별된 단계로 구성되어 있다. 표 1은 각 단계에 대한 간략한 소개를 제공한다.


표 1. 메이븐 2 기본 생명주기 단계
생명주기 단계설명
validate현재 설정과 POM의 내용이 유효한지 확인한다. 이 과정은 pom.xml 파일 트리 구조를 검증한다.
initialize빌드 사이클에서 수행할 주요 작업 이전에 초기화를 할 수 있는 순간
generate-sources코드 생성기가 이 다음의 단계들에서 컴파일 되고 처리할 소스 코드를 생성하기 시작하는 순간
process-sources소스의 파싱, 수정, 변경을 제공한다. 일반 코드 또는 생성된 코드 모두 여기서 처리된다.
generate-resources소스 코드가 아닌 리소스를 생성하는 단계. 보통 메타데이터 파일과 설정 파일을 포함한다.
process-resources이전 과정의 '소스 코드가 아닌 리소스' 파일들을 다룬다. 이 단계에서 리소스 파일들이 수정, 변경 재배치된다.
compile소스 코드를 컴파일한다. 컴파일된 클래스들은 타깃 디렉터리 트리 구조에 저장된다.
process-classes클래스 파일 변환과 개선 단계를 다룬다. 바이트코드 위버(weaver)와 instrument 도구가 동작하는 단계다.
generate-test-sources단위 테스트 코드를 생성하는 모조가 동작하는 순간
process-test-sources컴파일하기 전에 테스트 소스 코드에 필요한 작업을 수행한다. 이 단계에서 소스 코드는 수정, 변환 또는 복사될 수 있다.
generate-test-resources테스트 관련 리소스 생성을 허용한다.
process-test-resources테스트 관련 리소스의 처리, 변환, 재배치가 가능하다.
test-compile단위 테스트 소스 코드를 컴파일한다.
test컴파일된 단위 테스트를 실행하고 그 결과를 표시한다.
package실행 가능한 바이너리 파일들을 JAR나 WAR 같은 배포용 압축 파일로 묶는다.
pre-integration-test통합 테스트를 준비한다. 이 경우 통합 테스트는 실제 배치 환경의 코드를 테스트하는 것을 말한다. 이 단계에서 위에서 묶은 압축 파일을 서버에 배치할 수 있다.
integration-test실제 통합 테스트를 수행한다.
post-integration-test통합 테스트 준비 상태를 해제한다. 이것은 테스트 환경의 리셋 또는 재초기화 과정을 포함할 수 있다.
verify배치 가능한 압축 파일의 무결성과 유효성을 검증한다. 이 과정 이후에 압축 파일들이 설치된다.
install압축 파일을 로컬 메이븐 디렉터리에 추가한다. 이로 인해 이것에 의존하는 다른 모듈들을 사용할 수 있게 된다.
deploy압축 파일을 원격 메이븐 디렉터리에 추가한다. 더 많은 사용자들이 이 artifact를 사용할 수 있게 된다.

메이븐은 오픈소스 커뮤니티로부터 얻은 10년 이상의 프로젝트 빌드 관리 경험을 반영하고 있다. 따라서 표 1에 나와있는 생명주기에 해당하지 않는 빌드 생명주기를 쓰는 소프트웨어 프로젝트를 거의 찾을 수 없을 것이다.

메이븐 2 엔진을 시작하면 표 1에 있는 각각의 단계를 진행하고 각 단계에 관련되어 있는 모조들을 실행한다. 각각의 모조는 각각의 작업을 수행하면서 메이븐 2의 멋진 POM 지원, 종속성 관리 기능을 사용하고 빌드 상태 정보에 접근할 수 있다.

메이븐 2 엔진을 호출할 때, 하나의 생명주기 단계를 커맨드 라인 인자로 지정할 수 있다. 엔진은 모든 단계를 거쳐 지정한 단계까지 수행하게 된다. 그 과정에서 관련된 모조들을 전부 실행한다.

이것이 간략한 메이븐 2 동작 원리다. 이것이 동작하는 것은 다음 절에서 살펴보겠다. 종속성 관리 모델과 그것의 POM과 같은 메이븐의 동작 원리를 이해해야 메이븐 2를 실제 바로 사용할 수 있을 것이다.




위로



Go to the previous page16 페이지 중 5 페이지Go to the next page
    IBM 소개 개인정보 보호정책 문의