Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Chargement dans…3
×

Consultez-les par la suite

1 sur 38 Publicité

Plus De Contenu Connexe

Diaporamas pour vous (20)

Similaire à Maven (20)

Publicité

Plus récents (20)

Maven

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

×