Maven
2011.10.17
Version 1.0
전 성 욱
Maven 메뉴얼
<1>
1. 도구 개요
2. 도구 설치 방법
3. 도구 기능 소개
4. 도구 사용 예제
5. 참고 자료
목 차
Maven 메뉴얼
<2>
1. 도구 개요
1.1 도구 개요
1.2 메이븐 라이프 사이클 구조
1.3 저장소 구조
1.4 POM 파일 구조
Maven 메뉴얼
<3>
1. 도구 개요
1.1 도구 개요
구분 내용
소개
 메이븐은 아파치 소프트웨어 재단의 최상급 오픈 소스 프로젝트이며 원래는 자카르타 터빈(Jakarta Turbine) 프로젝트의 복잡한 빌
드 과정을 관리하기 위해 만들어졌다. 현재 버전 3까지 나오면서 메이븐은 단일 팀 프로젝트에 최적화된 빌드 도구에서 대부분의 소
프트웨어 개발 시나리오에 꼭 필요한 범용 빌드 관리 시스템까지 다양하게 사용하고 있다
라이센스  The Apache Software License, Version 2.0
사용환경  운영체제 : Platform Independent
공식 홈페이지  http://maven.apache.org
주요기능
 의존성 관리
 원격 레파지토리
 빌드 로직에 대한 보편적인 재사용
 도구 이식성과 통합
 쉬운 검색과 프로젝트 산출물 필터링
Maven 메뉴얼
<4>
1.2메이븐라이프사이클구조
메이븐이 기본적으로 제공하는 라이프사이클의 구조를 설명한다.
메이븐은 관례에 따른 방법을 강조하는 형태의 빌드툴이라 라이프 사이클의 기본적인 구조는 대부분의 메이븐 프로젝트가 동일하다.
1.도구개요
Maven 메뉴얼
<5>
1.3저장소구조
메이븐의 저장소 구조를 확인한다.
1.도구개요
Maven 메뉴얼
<6>
1.4POM파일구조[1/3]
POM은 프로젝트의 구조와 내용을 설명하고 있으며 pom.xml 파일에 프로젝트 관리 및 빌드에 필요한 환경 설정, 의존성 관리 등의 정보
들을 기술한다.
프로젝트의 세부 메타 데이터 정보를 포함한다.
1.도구개요
• Project Information : 프로젝트 이름, 프로젝트 URL, 프로젝트에 참여하는 개발자 목록, 프로젝트의 라이선스 같은 기본적인 정보를
관리한다.
• Build Settings : 메이븐 빌드와 관련한 기본적인 빌드 설정을 변경하기 위한 카테고리이다.
• POM Relationships : 대부분의 프로젝트는 다른 라이브러리 또는 프로젝트와 의존 관계를 가지며, 각 프로젝트 사이에서 상속 관계
를 가지는 경우도 있다. 이런 경우 각 프로젝트의 관계를 관리하는 부분이다.
• Build Environment : 모든 프로젝트는 다양한 환경에 배포하는 것이 가능해야 한다. 환경에 따라 변경되는 부분이 발생하는데, 이와
같이 다양한 환경에 따라 다른 설정 정보를 관리하는 것이 이 카테고리이다.
Maven 메뉴얼
<7>
1.4POM파일구조[2/3]
pom.xml 설정파일의 주요 엘리먼트를 설명한다.
프로젝트의 세부 메타 데이터 정보를 포함한다.
1.도구개요
• project : pom.xml 파일의 최상위 엘리먼트
• modelVersion : POM 모델의 버전. 가장 최근 버전이 4.0.0이다. POM 모델이 변경되지 않으면 수정할 필요가 없다.
• groupId : 프로젝트를 생성하는 조직의 고유 아이디를 결정한다. 일반적으로 도메인 이름을 사용한다.
• artifactId : 프로젝트를 식별하는 유일한 아이디를 의미한다. 예를 들어 net.pinsit라는 groupId를 사용하고 있는 조직에 여러 개의 프
로젝트가 있을 수 있다.
• packaging : 프로젝트를 어떤 형태로 패키징할지 결정한다. jar, war, ear, pom 등이 해당된다.
• version : 프로젝트의 현재 버전이다. 개발이 완료된 버전일 경우 1.0, 2.0과 같이 사용하겠지만, 프로젝트 개발 중에는 SNAPSHOT
을 접미사로 사용할 수 있다. SNAPSHOT은 메이븐의 예약어이며, SNAPSHOT을 사용하면 라이브러리를 다른 방식으로 관리한다.
• name : 프로젝트 이름
• url : 프로젝트 사이트가 있으면 사이트 URL을 등록한다.
• dependencies : <dependencies/>엘리먼트와 하위 엘리먼트인 <dependency/>는 프로젝트와 의존 관계에 있는 라이브러리를 관리
한다.
Maven 메뉴얼
<8>
1.4POM파일구조[3/3]
POM파일의 전체적인 구조는 분량이 많은 관계로 실제 내용은 POM의 스키마를 참조하기 바란다.
현재 사용되는 POM 4.0의 스키마는 http://maven.apache.org/maven-v4_0_0.xsd를 참조하기 바란다.
스키마를 보면 전체적인 구조를 이해할 수 있다.
1.도구개요
Maven 메뉴얼
<9>
2. 도구 설치 방법
2.1 도구 다운로드
2.2 도구 설치
2.3 도구 설치 확인
Maven 메뉴얼
<10>
2.1도구다운로드[1/4]
메이븐 공식 홈페이지 [http://maven.apache.org] 에서 OS에 맞는 설치파일을 다운로드 받습니다.
브라우저 주소 창에 주소를 입력하고 메이븐 홈페이지로 이동한 후 다운로드를 위해서 다운로드 페이지로 이동한다
2.도구설치방법
1
Maven 메뉴얼
<11>
2.1도구다운로드[2/4]
다운로드를 원하는 버전을 클릭합니다.
2.도구설치방법
2
Maven 메뉴얼
<12>
2.1도구다운로드[3/4]
원하는 Mirror 사이트를 선택해서 내 컴퓨터에 다운로드를 받습니다.
2.도구설치방법
3
Maven 메뉴얼
<13>
2.1도구다운로드[4/4]
내 컴퓨터의 다운로드 폴더에 다운받은 파일을 확인합니다.
2.도구설치방법
Maven 메뉴얼
<14>
2.2도구설치[1/6]
다운로드 받은 설치 파일을 원하는 폴더에 압축을 풉니다. 이 문서에서는 C드라이브 루트폴더에 설치를 합니다.
압축받은 파일을 C드라이브 루트로 이동하여 압축을 해제합니다
2.도구설치방법
Maven 메뉴얼
<15>
2.2도구설치[2/6]
커맨드라인에서 실행다운로드 받은 설치 파일을 원하는 폴더에 압축을 풉니다. 이 문서에서는 C드라이브 루트폴더에 설치를 합니다.
제어판이나 내 컴퓨터의 속성을 선택한 후 아래 화면에서 고급 시스템 설정을 클릭한다
2.도구설치방법
Maven 메뉴얼
<16>
2.2도구설치[3/6]
시스템 속성의 고급 탭을 클릭하고 아래에 있는 환경 변수를 클릭한다.
2.도구설치방법
Maven 메뉴얼
<17>
2.2도구설치[4/6]
시스템 변수의 새로 만들기를 선택하고 환경 변수를 추가한다.
2.도구설치방법
Maven 메뉴얼
<18>
2.2도구설치[5/6]
아래 내용처럼 M2_HOME과 설치한 폴더를 입력하고 확인을 클릭하여 추가한다.
2.도구설치방법
Maven 메뉴얼
<19>
2.2도구설치[6/6]
다음에 Path의 편집을 클릭하고 변수값에 아래 [%M2_HOME%/bin;]을 추가하고 확인을 클릭하여 추가한다.
2.도구설치방법
Maven 메뉴얼
<20>
2.3도구설치확인
커맨드라인에서 메이븐 명령을 수행하여 설치를 확인한다
커맨드라인에 [mvn –version] 명령을 수행하여 아래와 같이 나오면 정상적으로 설치가 완료된다.
2.도구설치방법
Maven 메뉴얼
<21>
3. 도구 기능 소개
3.1 아키타입 생성
3.2 이클립스용 프로젝트로 변환
3.3 아키타입 테스트
3.4 패키지 생성
Maven 메뉴얼
<22>
3.1아키타입생성[1/2]
메이븐의 아키타입은 프로젝트의 기본 구조를 생성해주는 기능이다.
아키타입을 생성하는 명령을 입력하여 아키타입을 생성한다.
• 커맨드 명령 : mvn archetype:generate –DarchetypeCatalog=internal
• 커맨드 라인에서 입력하면 메이븐의 내부 카테고리의 아키타입을 출력한다(아래 화면 참고).
• 원하는 아키타입을 선택하여 프로젝트를 생성한다
• 이 문서에서는 maven-archetype-webapp 프로젝트를 생성한다
3.도구기능소개
Maven 메뉴얼
<23>
3.1아키타입생성[2/2]
maven-archetype-webapp인 19번을 선택하여 아래 항목을 입력하여 아키타입을 생성한다.
• groupId : net.pinsit
• artifactId : test
• version : 기본값
• package : 기본값
• Y : Y
• 아래 처럼 프로젝트가 생성되었습니다
3.도구기능소개
Maven 메뉴얼
<24>
3.2이클립스용프로젝트로변환[1/5]
생성한 아키타입 프로젝트를 이클립스용 프로젝트로 변환한다.
메이븐으로 생성한 프로젝트를 이클립스에서 사용하기 위해 설정을 추가한다
• 커맨드 명령 : mvn eclipse:clean eclipse:eclipse
• 앞의 eclipse:clean 명령은 이클립스용으로 만들어지는 파일을 삭제하는 명령이다
• 만약에 이클립스용 WTP(Web Tools Platform)프로젝트의 생성을 위해서는 아래와 같은 플러그인을 추가한다
3.도구기능소개
Maven 메뉴얼
<25>
3.2이클립스용프로젝트로변환[2/5]
생성한 이클립스 프로젝트를 이클립스에서 import한다.
이클립스의 File메뉴의 Import를 선택하여 Import창을 연다
3.도구기능소개
1
2
Maven 메뉴얼
<26>
3.2이클립스용프로젝트로변환[3/5]
General의 존재하는 프로젝트를 가져오는 항목을 선택하고 다음으로 넘어간다.
3.도구기능소개
3
4
Maven 메뉴얼
<27>
3.2이클립스용프로젝트로변환[4/5]
생성된 프로젝트를 선택하여 Finish를 선택하여 다음으로 넘어간다.
3.도구기능소개
5
6
Maven 메뉴얼
<28>
3.2이클립스용프로젝트로변환[5/5]
이클립스에 포함된 프로젝트를 확인한다.
3.도구기능소개
Maven 메뉴얼
<29>
3.3아키타입테스트
아키타입으로 생성한 프로젝트의 테스트는 커맨드 라인에서 입력하여 테스트를 수행한다.
3.도구기능소개
• 커맨드 명령 : mvn test
• 아래 화면 처럼 테스트 수행한 내용을 보여준다
Maven 메뉴얼
<30>
3.4패키지생성
아키타입으로 생성한 프로젝트를 패키징한다
pom.xml에 설정된 패키징의 타입으로 패키지가 된다
3.도구기능소개
• 커맨드 명령 : mvn package
• 아래 화면 처럼 패키징하여 war파일이 생성된다
Maven 메뉴얼
<31>
4. 도구 사용 예제
4.1 프로퍼티 추가
4.2 라이브러리 추가
4.3 플러그인 추가
Maven 메뉴얼
<32>
4.1프로퍼티추가
pom.xml에서 사용하는 프로퍼티의 내용을 추가한다.
기존에 생성된 프로퍼티의 항목을 설명하는 것으로 프로퍼티를 설명한다
4.도구사용예제
• pom.xml에 <properties></properties>를 추가하고 사용할 프로퍼티를 추가한다.
• 사용할 프로퍼티명을 <>태그 사이에 입력하고 시작/종료태그 사이에 value를 입력한다.
• pins-core에서 사용한 프로퍼티를 설명한다.
– <java.version>1.6</java.version> : 자바 버전을 1.6으로 설정
– <project.build.sourceEncoding>UTF-8<project.build.sourceEncoding> : pom프로젝트의 Build부분의 인코딩을 UTF-8로 설정
– <spring.version>3.0.5.RELEASE</spring.version> : 스프링의 공통 버전을 3.0.5.RELEASE로 사용하기 위해 추가
– <slf4j.version>1.6.2</slf4j.version> : slf4j의 버전을 1.6.2로 사용하기 위해 추가
– <aspectj.version>1.6.11</aspectj.version> : aspectJ의 버전을 1.6.11로 사용하기 위해 추가
Maven 메뉴얼
<33>
4.2라이브러리추가
pom.xml에서 사용할 라이브러리를 추가한다.
프로젝트에서 사용할 라이브러리를 추가하는 것으로 여기서는 스프링 프레임워크를 추가한 부분만 설명한다.
4.도구사용예제
• pom.xml에 <dependencies></dependencies>사이에 사용을 원하는 라이브러리를 추가하면 됩니다.
• 라이브러리에 검색은 maven의 라이브러리 검색엔진들을 참고하시기 바랍니다 [http://mvnrepository.com]
• 라이브러리는 <dependency>라는 태그안에 groupId, artifactId, version을 명시하여 추가합니다
• 사용 예제는 아래와 같이 하여 라이브러리를 추가할 수 있습니다
Maven 메뉴얼
<34>
4.3플러그인추가
pom.xml에서 사용할 플러그인을 추가한다.
프로젝트에서 사용할 플로그인을 사용하는 부분으로 여기서는 컴파일러의 버전과 인코딩 설정을 설명한다.
4.도구사용예제
• pom.xml에 <build></build>사이에 <plugins></plugins>사이에 사용을 원하는 플러그인을 추가하면 됩니다.
• 각각의 플러그인에 대한 설정법은 메이븐 공식 홈페이지 [http://maven.apache.org]를 참고하여 설정한다.
• 각 플러그인 마다 설정 방법이 다르기 때문에 여기서는 compiler플러그인에 대한 설정을 설명한다.
• <source></source>는 소스 코드의 자바 버전을 의미한다
• <target></target>은 컴파일 된 자바 클래스의 자바 버전을 의미한다.
• <encoding></encoding>은 사용하는 인코딩 언어를 의미한다
• 설정의 상세 항목은 아래와 같다.
Maven 메뉴얼
<35>
5. 참고자료
Maven 메뉴얼
<36>
문서에 사용한 참고자료
5.참고자료
• 제12회 한국자바개발자 컨퍼런스의 박재성님의 Apache Maven문서 참고
– URL : http://www.jco.or.kr/c?mc=conference&sc=pds&pdsPage=12
• 한빛미디어 : 자바세상의 빌드를 이끄는 메이븐 (저자 박재성) 참고
– POM의 구조에 대해서 3장의 pom관련 참고
감사합니다

Maven

  • 1.
  • 2.
    Maven 메뉴얼 <1> 1. 도구개요 2. 도구 설치 방법 3. 도구 기능 소개 4. 도구 사용 예제 5. 참고 자료 목 차
  • 3.
    Maven 메뉴얼 <2> 1. 도구개요 1.1 도구 개요 1.2 메이븐 라이프 사이클 구조 1.3 저장소 구조 1.4 POM 파일 구조
  • 4.
    Maven 메뉴얼 <3> 1. 도구개요 1.1 도구 개요 구분 내용 소개  메이븐은 아파치 소프트웨어 재단의 최상급 오픈 소스 프로젝트이며 원래는 자카르타 터빈(Jakarta Turbine) 프로젝트의 복잡한 빌 드 과정을 관리하기 위해 만들어졌다. 현재 버전 3까지 나오면서 메이븐은 단일 팀 프로젝트에 최적화된 빌드 도구에서 대부분의 소 프트웨어 개발 시나리오에 꼭 필요한 범용 빌드 관리 시스템까지 다양하게 사용하고 있다 라이센스  The Apache Software License, Version 2.0 사용환경  운영체제 : Platform Independent 공식 홈페이지  http://maven.apache.org 주요기능  의존성 관리  원격 레파지토리  빌드 로직에 대한 보편적인 재사용  도구 이식성과 통합  쉬운 검색과 프로젝트 산출물 필터링
  • 5.
    Maven 메뉴얼 <4> 1.2메이븐라이프사이클구조 메이븐이 기본적으로제공하는 라이프사이클의 구조를 설명한다. 메이븐은 관례에 따른 방법을 강조하는 형태의 빌드툴이라 라이프 사이클의 기본적인 구조는 대부분의 메이븐 프로젝트가 동일하다. 1.도구개요
  • 6.
  • 7.
    Maven 메뉴얼 <6> 1.4POM파일구조[1/3] POM은 프로젝트의구조와 내용을 설명하고 있으며 pom.xml 파일에 프로젝트 관리 및 빌드에 필요한 환경 설정, 의존성 관리 등의 정보 들을 기술한다. 프로젝트의 세부 메타 데이터 정보를 포함한다. 1.도구개요 • Project Information : 프로젝트 이름, 프로젝트 URL, 프로젝트에 참여하는 개발자 목록, 프로젝트의 라이선스 같은 기본적인 정보를 관리한다. • Build Settings : 메이븐 빌드와 관련한 기본적인 빌드 설정을 변경하기 위한 카테고리이다. • POM Relationships : 대부분의 프로젝트는 다른 라이브러리 또는 프로젝트와 의존 관계를 가지며, 각 프로젝트 사이에서 상속 관계 를 가지는 경우도 있다. 이런 경우 각 프로젝트의 관계를 관리하는 부분이다. • Build Environment : 모든 프로젝트는 다양한 환경에 배포하는 것이 가능해야 한다. 환경에 따라 변경되는 부분이 발생하는데, 이와 같이 다양한 환경에 따라 다른 설정 정보를 관리하는 것이 이 카테고리이다.
  • 8.
    Maven 메뉴얼 <7> 1.4POM파일구조[2/3] pom.xml 설정파일의주요 엘리먼트를 설명한다. 프로젝트의 세부 메타 데이터 정보를 포함한다. 1.도구개요 • project : pom.xml 파일의 최상위 엘리먼트 • modelVersion : POM 모델의 버전. 가장 최근 버전이 4.0.0이다. POM 모델이 변경되지 않으면 수정할 필요가 없다. • groupId : 프로젝트를 생성하는 조직의 고유 아이디를 결정한다. 일반적으로 도메인 이름을 사용한다. • artifactId : 프로젝트를 식별하는 유일한 아이디를 의미한다. 예를 들어 net.pinsit라는 groupId를 사용하고 있는 조직에 여러 개의 프 로젝트가 있을 수 있다. • packaging : 프로젝트를 어떤 형태로 패키징할지 결정한다. jar, war, ear, pom 등이 해당된다. • version : 프로젝트의 현재 버전이다. 개발이 완료된 버전일 경우 1.0, 2.0과 같이 사용하겠지만, 프로젝트 개발 중에는 SNAPSHOT 을 접미사로 사용할 수 있다. SNAPSHOT은 메이븐의 예약어이며, SNAPSHOT을 사용하면 라이브러리를 다른 방식으로 관리한다. • name : 프로젝트 이름 • url : 프로젝트 사이트가 있으면 사이트 URL을 등록한다. • dependencies : <dependencies/>엘리먼트와 하위 엘리먼트인 <dependency/>는 프로젝트와 의존 관계에 있는 라이브러리를 관리 한다.
  • 9.
    Maven 메뉴얼 <8> 1.4POM파일구조[3/3] POM파일의 전체적인구조는 분량이 많은 관계로 실제 내용은 POM의 스키마를 참조하기 바란다. 현재 사용되는 POM 4.0의 스키마는 http://maven.apache.org/maven-v4_0_0.xsd를 참조하기 바란다. 스키마를 보면 전체적인 구조를 이해할 수 있다. 1.도구개요
  • 10.
    Maven 메뉴얼 <9> 2. 도구설치 방법 2.1 도구 다운로드 2.2 도구 설치 2.3 도구 설치 확인
  • 11.
    Maven 메뉴얼 <10> 2.1도구다운로드[1/4] 메이븐 공식홈페이지 [http://maven.apache.org] 에서 OS에 맞는 설치파일을 다운로드 받습니다. 브라우저 주소 창에 주소를 입력하고 메이븐 홈페이지로 이동한 후 다운로드를 위해서 다운로드 페이지로 이동한다 2.도구설치방법 1
  • 12.
    Maven 메뉴얼 <11> 2.1도구다운로드[2/4] 다운로드를 원하는버전을 클릭합니다. 2.도구설치방법 2
  • 13.
    Maven 메뉴얼 <12> 2.1도구다운로드[3/4] 원하는 Mirror사이트를 선택해서 내 컴퓨터에 다운로드를 받습니다. 2.도구설치방법 3
  • 14.
    Maven 메뉴얼 <13> 2.1도구다운로드[4/4] 내 컴퓨터의다운로드 폴더에 다운받은 파일을 확인합니다. 2.도구설치방법
  • 15.
    Maven 메뉴얼 <14> 2.2도구설치[1/6] 다운로드 받은설치 파일을 원하는 폴더에 압축을 풉니다. 이 문서에서는 C드라이브 루트폴더에 설치를 합니다. 압축받은 파일을 C드라이브 루트로 이동하여 압축을 해제합니다 2.도구설치방법
  • 16.
    Maven 메뉴얼 <15> 2.2도구설치[2/6] 커맨드라인에서 실행다운로드받은 설치 파일을 원하는 폴더에 압축을 풉니다. 이 문서에서는 C드라이브 루트폴더에 설치를 합니다. 제어판이나 내 컴퓨터의 속성을 선택한 후 아래 화면에서 고급 시스템 설정을 클릭한다 2.도구설치방법
  • 17.
    Maven 메뉴얼 <16> 2.2도구설치[3/6] 시스템 속성의고급 탭을 클릭하고 아래에 있는 환경 변수를 클릭한다. 2.도구설치방법
  • 18.
    Maven 메뉴얼 <17> 2.2도구설치[4/6] 시스템 변수의새로 만들기를 선택하고 환경 변수를 추가한다. 2.도구설치방법
  • 19.
    Maven 메뉴얼 <18> 2.2도구설치[5/6] 아래 내용처럼M2_HOME과 설치한 폴더를 입력하고 확인을 클릭하여 추가한다. 2.도구설치방법
  • 20.
    Maven 메뉴얼 <19> 2.2도구설치[6/6] 다음에 Path의편집을 클릭하고 변수값에 아래 [%M2_HOME%/bin;]을 추가하고 확인을 클릭하여 추가한다. 2.도구설치방법
  • 21.
    Maven 메뉴얼 <20> 2.3도구설치확인 커맨드라인에서 메이븐명령을 수행하여 설치를 확인한다 커맨드라인에 [mvn –version] 명령을 수행하여 아래와 같이 나오면 정상적으로 설치가 완료된다. 2.도구설치방법
  • 22.
    Maven 메뉴얼 <21> 3. 도구기능 소개 3.1 아키타입 생성 3.2 이클립스용 프로젝트로 변환 3.3 아키타입 테스트 3.4 패키지 생성
  • 23.
    Maven 메뉴얼 <22> 3.1아키타입생성[1/2] 메이븐의 아키타입은프로젝트의 기본 구조를 생성해주는 기능이다. 아키타입을 생성하는 명령을 입력하여 아키타입을 생성한다. • 커맨드 명령 : mvn archetype:generate –DarchetypeCatalog=internal • 커맨드 라인에서 입력하면 메이븐의 내부 카테고리의 아키타입을 출력한다(아래 화면 참고). • 원하는 아키타입을 선택하여 프로젝트를 생성한다 • 이 문서에서는 maven-archetype-webapp 프로젝트를 생성한다 3.도구기능소개
  • 24.
    Maven 메뉴얼 <23> 3.1아키타입생성[2/2] maven-archetype-webapp인 19번을선택하여 아래 항목을 입력하여 아키타입을 생성한다. • groupId : net.pinsit • artifactId : test • version : 기본값 • package : 기본값 • Y : Y • 아래 처럼 프로젝트가 생성되었습니다 3.도구기능소개
  • 25.
    Maven 메뉴얼 <24> 3.2이클립스용프로젝트로변환[1/5] 생성한 아키타입프로젝트를 이클립스용 프로젝트로 변환한다. 메이븐으로 생성한 프로젝트를 이클립스에서 사용하기 위해 설정을 추가한다 • 커맨드 명령 : mvn eclipse:clean eclipse:eclipse • 앞의 eclipse:clean 명령은 이클립스용으로 만들어지는 파일을 삭제하는 명령이다 • 만약에 이클립스용 WTP(Web Tools Platform)프로젝트의 생성을 위해서는 아래와 같은 플러그인을 추가한다 3.도구기능소개
  • 26.
    Maven 메뉴얼 <25> 3.2이클립스용프로젝트로변환[2/5] 생성한 이클립스프로젝트를 이클립스에서 import한다. 이클립스의 File메뉴의 Import를 선택하여 Import창을 연다 3.도구기능소개 1 2
  • 27.
    Maven 메뉴얼 <26> 3.2이클립스용프로젝트로변환[3/5] General의 존재하는프로젝트를 가져오는 항목을 선택하고 다음으로 넘어간다. 3.도구기능소개 3 4
  • 28.
    Maven 메뉴얼 <27> 3.2이클립스용프로젝트로변환[4/5] 생성된 프로젝트를선택하여 Finish를 선택하여 다음으로 넘어간다. 3.도구기능소개 5 6
  • 29.
  • 30.
    Maven 메뉴얼 <29> 3.3아키타입테스트 아키타입으로 생성한프로젝트의 테스트는 커맨드 라인에서 입력하여 테스트를 수행한다. 3.도구기능소개 • 커맨드 명령 : mvn test • 아래 화면 처럼 테스트 수행한 내용을 보여준다
  • 31.
    Maven 메뉴얼 <30> 3.4패키지생성 아키타입으로 생성한프로젝트를 패키징한다 pom.xml에 설정된 패키징의 타입으로 패키지가 된다 3.도구기능소개 • 커맨드 명령 : mvn package • 아래 화면 처럼 패키징하여 war파일이 생성된다
  • 32.
    Maven 메뉴얼 <31> 4. 도구사용 예제 4.1 프로퍼티 추가 4.2 라이브러리 추가 4.3 플러그인 추가
  • 33.
    Maven 메뉴얼 <32> 4.1프로퍼티추가 pom.xml에서 사용하는프로퍼티의 내용을 추가한다. 기존에 생성된 프로퍼티의 항목을 설명하는 것으로 프로퍼티를 설명한다 4.도구사용예제 • pom.xml에 <properties></properties>를 추가하고 사용할 프로퍼티를 추가한다. • 사용할 프로퍼티명을 <>태그 사이에 입력하고 시작/종료태그 사이에 value를 입력한다. • pins-core에서 사용한 프로퍼티를 설명한다. – <java.version>1.6</java.version> : 자바 버전을 1.6으로 설정 – <project.build.sourceEncoding>UTF-8<project.build.sourceEncoding> : pom프로젝트의 Build부분의 인코딩을 UTF-8로 설정 – <spring.version>3.0.5.RELEASE</spring.version> : 스프링의 공통 버전을 3.0.5.RELEASE로 사용하기 위해 추가 – <slf4j.version>1.6.2</slf4j.version> : slf4j의 버전을 1.6.2로 사용하기 위해 추가 – <aspectj.version>1.6.11</aspectj.version> : aspectJ의 버전을 1.6.11로 사용하기 위해 추가
  • 34.
    Maven 메뉴얼 <33> 4.2라이브러리추가 pom.xml에서 사용할라이브러리를 추가한다. 프로젝트에서 사용할 라이브러리를 추가하는 것으로 여기서는 스프링 프레임워크를 추가한 부분만 설명한다. 4.도구사용예제 • pom.xml에 <dependencies></dependencies>사이에 사용을 원하는 라이브러리를 추가하면 됩니다. • 라이브러리에 검색은 maven의 라이브러리 검색엔진들을 참고하시기 바랍니다 [http://mvnrepository.com] • 라이브러리는 <dependency>라는 태그안에 groupId, artifactId, version을 명시하여 추가합니다 • 사용 예제는 아래와 같이 하여 라이브러리를 추가할 수 있습니다
  • 35.
    Maven 메뉴얼 <34> 4.3플러그인추가 pom.xml에서 사용할플러그인을 추가한다. 프로젝트에서 사용할 플로그인을 사용하는 부분으로 여기서는 컴파일러의 버전과 인코딩 설정을 설명한다. 4.도구사용예제 • pom.xml에 <build></build>사이에 <plugins></plugins>사이에 사용을 원하는 플러그인을 추가하면 됩니다. • 각각의 플러그인에 대한 설정법은 메이븐 공식 홈페이지 [http://maven.apache.org]를 참고하여 설정한다. • 각 플러그인 마다 설정 방법이 다르기 때문에 여기서는 compiler플러그인에 대한 설정을 설명한다. • <source></source>는 소스 코드의 자바 버전을 의미한다 • <target></target>은 컴파일 된 자바 클래스의 자바 버전을 의미한다. • <encoding></encoding>은 사용하는 인코딩 언어를 의미한다 • 설정의 상세 항목은 아래와 같다.
  • 36.
  • 37.
    Maven 메뉴얼 <36> 문서에 사용한참고자료 5.참고자료 • 제12회 한국자바개발자 컨퍼런스의 박재성님의 Apache Maven문서 참고 – URL : http://www.jco.or.kr/c?mc=conference&sc=pds&pdsPage=12 • 한빛미디어 : 자바세상의 빌드를 이끄는 메이븐 (저자 박재성) 참고 – POM의 구조에 대해서 3장의 pom관련 참고
  • 38.