노무현 대통령 배너

'maven'에 해당되는 글 1건

  1. 2008/02/21 Maven으로 프로젝트 빌드하기
Ant가 워낙 널리 쓰이다 보니 Maven을 설명할때 "Ant 보다 좋다.", "Ant의 확장판이다." 처럼 Ant와 비교할때가 많습니다. 하지만 Maven을 Ant와 같은 빌드 스크립트로 이야기하기에는 Maven의 기능이 너무 많습니다.

Maven이 Ant가 가진 많은 단점을 보완하는것은 맞습니다. J2EE 프로젝트가 원체 다양해 지다 보니 Ant의 스크립트도 복잡해졌습니다만 Ant 스크립트는 단순한 XML 구조이기 때문에 이를 수용하기에 적합하지 않았습니다. 그래서 maven은 많은 좋은 사례들을 참고하여 미리 고울을 정의해 놓았습니다. Ant에서 스크립트를 만드느라 고생해야 하는걸 maven에서는 하지 않아도 됩니다.

즉 maven을 사용하게 되면 공통된 프로젝트 구조를 정의해 놓고 이 컨벤션에 맞는 빌드 프로세스를 사전에 정의해 놓음으로서 프로젝트와 빌드 프로세스를 분리할 수가 있는 것 입니다. maven의 빌드 라이프 사이클은 따로 살펴볼만한 가치가 있습니다.

m2라고 불리는 maven2는 maven1을 기반으로 좀 더 정형화된 빌드 라이프사이클 관리를 위해서 새롭게 개발된 버전입니다. 여기서는 maven1.02를 사용하겠습니다.

POM에 대한 기본적인 내용만 알아보겠습니다. POM은 Project Object Model의 약자입니다. maven1에서는 Project.xml이라는 이름으로 정의했으나 maven2에서는 Pom.xml이라는 이름을 갖습니다. POM에는 dependencies, task, goal 등을 정의합니다. 모든 POM은 기본 POM인 Super POM을 상속받습니다.

여기서도 일단 Maven을 Ant 처럼 프로젝트를 빌드하는 용도로만 사용하려고 합니다. 그러기 위해서는 먼저 Maven에 대해 알아야 합니다. 직접 만들까 하다가 뒤져보니 비슷한 강좌가 있어서 링크만 걸겠습니다.
위 강좌를 이해하시면 여기서 필요한 작업은 충분히 하실수 있을거라 믿습니다. 간단히 정리해 봤습니다.
  • Maven 다운로드
  • Maven 설치
  • MAVEN_HOME 환경변수 추가
  • PATH에 Maven의 bin 폴더 추가
  • 테스트
maven의 기본적인 용법만 몇가지 정리해 봤습니다.

maven이 제대로 설치되었는지 확인하기 위해서 콘솔창에서 다음과 같이 실행합니다.
maven -v
maven으로 새로운 프로젝트를 생성합니다.
maven genapp
genapp는 maven의 기본 프로젝트 구조를 바탕으로 src폴더, conf폴더와 같은 새로운 프로젝트 스켈레톤을 생성해 줍니다. 이 구조는 원하는 대로 변경이 가능합니다.

maven에서 설정을 위해 사용하는 파일은 project.xml과 project.properties 2개입니다. project.xml은 라이센스, 개발자, 소스코드 관리, 프로젝트 개요, 메일링 리스트등의 프로젝트 상세내역을 정의하며, project.properties는 프록시 설정과 같은 정보가 들어갑니다.
maven.proxy.host = proxy.company.com
maven.proxy.port = 80
maven.proxy.username = username
maven.proxy.password = password
maven은 플러그인이라는 확장구조를 지원합니다. 이 덕분에 maven이 자체작으로 가지고 있는 고울(goal)이외에 새로운 고울을 추가할 수 있습니다. ant의 타겟(target)에 해당하는 것이 maven의 고울입니다.

예를 들어 jar라는 플러그인의 jar 고울을 실행하고 싶다면 아래와 같이 입력하면 됩니다. 하지만 줄여서 그냥 jar 라고 해도 됩니다. 이를 shortcut이라 부릅니다.
maven jar:jar
maven jar
maven이 사용가능한 모든 플러그인으 보고 싶다면 -g 옵션을 주면 됩니다.
maven -g
-P 옵션과 플러그인명을 주면 플러그인 내의 모든 고울을 볼 수 있습니다.
maven -P jar
java 소스를 컴파일 하려면 java 플러그인의 compile 고울을 사용합니다.
maven java:compile
JUnit 테스트 코드를 갖고 있다면 test 플러그인을 사용합니다.
maven test
maven -X test
JavaDoc 문서를 생성합니다.
maven javadoc
프로젝트 정보를 나타내는 사이트를 만들어 줍니다.
maven site

Maven의 컴맨드 라인 명령어에 익숙하지 않으신 분들은 Command Line Reference를 참고하시면 이해에 도움이 될거 같습니다. 이 정도면 maven으로 할 수 있는 일이 뭐라는 정도는 잘 아셨을거 같습니다. 실제 작업은 다음 포스트에 적어보겠습니다.

크리에이티브 커먼즈 라이선스
Creative Commons License
TAG