· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Maven

RenameThisPage MavenQuickstart 등의 이름으로 바꿀 것을 제안합니다.



1. 개요

Maven은 Apache (Jakarta) project들의 홈페이지들에 보면 "built by maven"이라 써있는 모든 프로젝트의 빌드 시스템이다.

Ant를 이용한 빌드에 몇몇 유용한 플러스 알파를 제공한다.

이 문서는 현재 기본적인 요소만 다룰 예정이며 추후에 관련 사항들을 추가할 예정이다.

2. 장점

  • 마치 데비안의 패키징 시스템과 비슷한 의존성 해결 및 필요한 패키지(jar) 자동 다운로드 지원
  • 각종 유용한 플러그인 지원(J2EE/Eclipse/project web site 등등)
  • 자동화된 unit test 지원
  • 유연성(plugin들로 구성되어 있으며 필요한 plugin을 직접 만들 수도 있다).

3. 설치

  • [http]다운로드 페이지에서 다운로드 후 설치(압축풀기).
  • 환경변수 설정

  • 압축을 푼 디렉토리를 MAVEN_HOME으로 설정
  • PATH$MAVEN_HOME/bin 추가
  • 저장소 생성

 $MAVEN_HOME/bin/install_repo.sh $HOME/.maven/repository

4. 테스트

  • cvs로 적당한 project를 check out한다(maven으로 build하는 project여야한다.^^).
  • project home에서 다음 중에 하나를 실행해본다.

  • maven jar:jar
  • maven dist:build
아마 필요한 jar들을 다운로드하고 build하고 unit test하는 과정이 진행된 후에 성공했다는 메시지가 나올 것이다.

저장소 디렉토리의 내용을 한번 살펴보면 빌드과정에서 다운로드 받은 jar들이 쌓여있는 것을 확인할 수 있다.

5. Plugin? Goal?

maven은 보통 다음의 형식으로 실행된다.

maven plugin:goal

5.1. Plugin

Maven의 plugin으로 $MAVEN_HOME/plugins에 들어 있는 것들이다.

5.2. Goal

Maven의 plugin이 지원하는 동작(?)이다. 하나의 plugin은 n개의 goal(들)과 default goal을 가질 수 있다.

5.3. 설치된 plugin/goal 확인

다음의 명령으로 설치된 모든 plugin과 plugin의 goal들을 확인할 수 있다.

maven -g

6. Eclipse 연동 - eclipse plugin 사용

  • 테스트용 project 준비(다음 중 편한 것을 하나 선택).

  • maven으로 build하는 project를 eclipse의 workspace 아래로 복사.
  • eclipse의 cvs기능을 이용해서 "check out as project"로 project 하나를 테스트용으로 check out.
  • project home 디렉토리에서 다음을 실행한다.

maven eclipse:generate-project
maven eclipse:generate-classpath

project home 디렉토리에 .project.classpath 파일이 생성된 것을 확인할 수 있다.
  • eclipse에 MAVEN_REPO Classpath Variable 추가(Window > Preferences > Java > Classpath Variables).
물론 이건 위에서 설정했던 저장소 디렉토리이다.
  • Package Explorer에서 프로젝트 선택 후 right click, refresh!!

모든 소스폴더와 jar들이 제자리에 있는 것을 확인할 수 있을 것이다.

8. TODO

maven from scratch 정도가 필요하지 않을까?





sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2005-03-14 14:05:11
Processing time 0.0016 sec