본문 바로가기

Architect

Eclipse plugins for Maven

다음 플러그인은 Eclipse IDE에서 Maven을 이용할 수 있도록 도와주는 톨이다. 이것은 Maven 커멘드 라인 인터페이스의 복잡성을 피하게 해준다.
IDE에 포함된 Maven에 대해서 더 많은 정보를 원한다면, 해당 사이트를 찾아가 보면 될것이다. 이러한 플러그인들은 Eclipse에서 메이븐의 해당 목적을 달성할 수 있도록 지원해주며, Maven POM 정보와 IDE가 동기화 되어 더욱 많은 정보를 보여주는 기능을 수행한다.

Eclipse에 포함된 Maven 툴 (m2eclipse, Eclipse M2e)

The Maven Integration for Eclipse는 제일 먼저 나온것으로 이클립스 IDE에 통합된 가장 많은 프로젝트에서 이용되고 있다. 이것은 현재 EPL 1.0 라이선스에 적용을 받고 있다.

이것은 다음과 같은 기능을 가지고 있다. :

  • Eclipse에 런칭되어 Maven 빌드를 수행한다.
  • Maven의 pom.xml에 지정된 빌드 패스를 기반으로 의존성 관리를 수행한다.
  • 로컬 Maven 저장소를 설치하는것 없이 이클립스로 부터 Maven depencencies를 해결해 준다.
  • 원격 Maven 저장소로 부터 자동적으로 의존되어 있는 필요한 소스를 다운받도록 해준다.
  • 새로운 Maven 프로젝트를 생성하는 기능을 수행하며, pom.xml를 통해 기존에 존재하는 프로젝트의 Maven 지원 기능을 가틍하도록 해준다.
  • 원격 Maven 저장소에있는 의존성을 빠르게 찾아준다.
  • 필요한 의존성과 jar파일을 찾고 빠르게 수정해 주는 기능을 한다.
  • 서로다른 이클립스 툴과 통합된다. WTP, AJDT, Mylyn, Subclipse등과 같은 것들

설치 명령에 대해서는 m2eclipse website을 참조하라.. 최근 기능에 대해서 보고자 한다면 New and Noteworthym2eclipse wiki 에서 찾아보라.

현재 이클립스에서 진행되고 있는 (incubated at Eclipse) 프로젝트를 보고자 한다면 eclipse.technology.m2e 에서 발행된 뉴스그룹이나 web interface 을 이용하여 가장 최근의 진행상황을 확인해 보라.


Maven 설치하기

이클립스의 업데이트 사이틍를 이용하여 Maven Integration for Eclipse를 설치할 수 있다.

 http://m2eclipse.sonatype.org/update/

안정적인 버젼을 인스톨하기를 원하는경우에는 다음 에서 업데이트를 수행하라.

 http://m2eclipse.sonatype.org/update-dev/

Quick Start

Maven 설정하기

Maven을 올바르게 얻었다면 기본적으로 매우 현명하게 동작할 것이다. 그러나 이것은 제한된 환경이나 방화벽 뒤에서 운영하고자 한다면 아마도 Maven을 실행하기 위해서 준비해야할 것들이 있을 것이다. 우선 home 디렉토리를 이용할 수 있도록 엑세스 권한이 필요하며 (Unix/Max OS에서는 ~/.m2 디렉토리이며, Window에서는 C:\Documents and Settings\username\.m2), 네트워크에서 바이너리 디펜던시를 다운받을 수있도록 해야한다.

프로젝트 빌드하기

Maven-build 프로젝트를 수행할때에는 대부분 다음 명령어를 이용한다.

mvn clean install

이 명령어는 Maven에게 모든 모듈을 빌드하라고 말해주는 것이다. 그리고 이것을 로컬 저장소에 설치를 수행하라고 한다. 로컬 저장소는 home directory에 생성된 것이다. (혹은 원하는 다른 위치가 될 수 있다.) 그리고 다운로드된 바이너리와 프로젝트에서 빌드된 것들이 저장되는 곳이다.

됬다. 만약 대상 하위 디렉토리를 보게 된다면, 최종적으로 빌드된 출력 결과물과 라이브러리, 애플리케이션이 존재할 것이다.

노트 : 몇몇 프로젝트에서는 멀티플 모듈을 가지고 있으며, 라이브러리나 애플리케이션에서 모듈의 하위 디렉토리에서 참조하도록 한다.

대부분의 프로젝트가 빌드될때 Maven은 표준화된 방법으로 처리를 하며 빌드를 개인적으로 설정 하기도한다. 만약 충분하지 못한경우에는 프로젝트의 문서에 컨설트를 받아보는 것이 좋다.

빌드보다 더 많은 기타 부분

Maven은 단순히 소프트웨어를 빌드하는 것 이상의 기능을 수행한다. 이것은 테스팅을 지원할 수 있고, 웹 애플리케이션과 프로젝트에서 생성된 리포트를 만들기도 한다. 또한 많은 플러그인에서 제공하는 작업을 수행하기도 한다.

다른 작업을 하기를 원한다면 Cookbook for Running Maven. 참조하라.

무언가 잘못 되었을때.

Maven을 이용하여 빌드를 수행할때 다음과 같은 공통적인 문제가 발생할때 어떻게 해결하는지 볼 수 있다.

의존성 항목들이 빠졌을때

의존성 항목이 빠졌다는 다음과 같은 에러가 발생한다.

[INFO] Failed to resolve artifact.
Missing: ----------
1) jnuit:junit:jar:3.8.1
Try downloading the file manually from the project website.
Then, install it using the command:
mvn install:install-file -DgroupId=jnuit -DartifactId=junit \
-Dversion=3.8.1 -Dpackaging=jar -Dfile=/path/to/file
Path to dependency:
1) org.apache.maven:maven:pom:2.1-SNAPSHOT
2) jnuit:junit:jar:3.8.1
----------
1 required artifact is missing.
for artifact: org.apache.maven:maven:pom:2.1-SNAPSHOT
from the specified remote repositories:
 central (http://repo1.maven.org/maven2)

이러한 이슈를 해결하기 위해서는 디펜던시가 어떤 의존성을 가지고 있는지, 그리고 왜 빠졌는지를 알아봐야 한다. 대부분의 경우 저장소로 부터 가져오지 못한 경우가 된다. 그러므로 설치된 툴에서 메시지를 이용하여 수동으로 처리해야한다.This is most common with some older JARs from Sun (usually javax.* group IDs), and is further documented in the Guide to Coping with Sun JARs.

에러 마지막 라인에 적혀있는 저장소 위치를 체크해볼 수 있다. 이것은 선언되지 않은 저장소 정보이거나. Maven 설정으로 접근할 수 없는 경우에 대한 내용이 나타난다.

다른 케이스의 경우 잘못된 의존성 선언일 경우가 있다. 이것은 컴파일 에러와 같이 쉽게 수정이 가능한 경우이다.



'Architect' 카테고리의 다른 글

스크럼(Scrum)의 스프린트(Sprint), XP의 스토리(Story)  (1) 2009.10.05
스크럼 회의  (0) 2009.09.29
Pratical Java 기본정의  (1) 2008.10.15
리스크관리 개요  (0) 2008.07.17
Loosed Coupling 을 잘 모르는 사람.  (0) 2008.07.02