문서의 제목 나눔고딕B, 54pt

Similar documents
PowerPoint 프레젠테이션

슬라이드 1

Social Media and Social Computing

Software Requirements Specification Template

Apache Ivy

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1

슬라이드 1

Software Requirements Specification Template

파워포인트

PowerPoint Presentation

Spring Boot

Software Requirements Specification Template

Software Requirements Specification Template

슬라이드 1

[ 스프링부트, 그래들, HelloWorld]STS,Gradle 설치및 WEB MVC 심플예제 간단히 STS 및 Gradle Support Plugin 을설치하여간단히 Spring Boot, Gradle Web 응용프로그램을작성해보자. 0. STS 및 Gradle Su

슬라이드 1

슬라이드 1

문서의 제목 나눔고딕B, 54pt

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

슬라이드 1

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

슬라이드 1

Software Requirements Specification Template

JDK이클립스

슬라이드 1

Spring

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

슬라이드 1

문서의 제목 나눔명조R, 40pt

4S 1차년도 평가 발표자료

내장서버로사용. spring-boot-starter-data-jpa : Spring Data JPA 사용을위한설정 spring-boot-devtools : 개발자도구를제공, 이도구는응용프로그램개발모드에서유 용한데코드가변경된경우서버를자동으로다시시작하는일들을한다. spri

1. 도구개요 STAF Testing 소개 각테스트대상분산환경에데몬을사용하여테스트대상프로그램을통해테스트를수행하고, 통합하며자동화하는 프레임워크 주요기능 테스트통합및자동화 카테고리 Testing 세부카테고리테스트설계및실행 커버리지 Test Integration / Aut

PowerPoint 프레젠테이션

소프트웨어 검증 및 설계

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

슬라이드 1

Microsoft PowerPoint - jfeature장범석서재원박동현.pptm

슬라이드 1

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

문서의 제목 나눔고딕B, 54pt

슬라이드 1

슬라이드 1

Intro to Servlet, EJB, JSP, WS

Angry MOMO Presentation

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx)

Intellij spring(mvc) + maven 환경구축 New Project에서좌측 template 유형에서 Maven을선택합니다. 오른쪽상단에 Project SDK는 java SDK가설치된폴더를선택하면됩니다. 오른쪽에 Create from archetyhpe을체


1. 도구개요 CppUnit Testing 소개 CppUnit 는 C++ 용 testing Framework 로 Java 의 JUnit 을 C++ 로구현 C++ 언어에서사용할수있도록개발된 Open Source 프로젝트로, source code 의특정 Module 이의도

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

슬라이드 1

Interstage5 SOAP서비스 설정 가이드

Introduction to CTIP

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

문서의 제목 나눔고딕B, 54pt

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인

블로그_별책부록

2. 기능요약 자바프로그래밍언어에서사용하는자동화된소프트웨어빌드도구 주요기능 IDE 통합및도구지원 원격코드 Build 자동화 지원여부 대부분의도구지원 (Eclipse, NetBeans 등 ) 지원 (FTP, SCP, SFTP, SVN) 자동화 Build 중 Unit Te

PowerPoint Template

server name>/arcgis/rest/services server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지

개발환경 교육교재

슬라이드 1

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

Syslog 서버개발예제 1. New project new.bat 파일을 d:\kraken\examples 에복사하고명령프롬프트에서다음과같이실행 new [artifact id] [package]..or.. mvn archetype:generate -DarchetypeG

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

Secure Programming Lecture1 : Introduction

문서의 제목 나눔고딕B, 54pt

JUNIT 실습및발표

ISP and CodeVisionAVR C Compiler.hwp

서현수

JAVA 플랫폼 개발 환경 구축 및 활용

Microsoft PowerPoint - aj-lecture1.ppt [호환 모드]

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

chapter1,2.doc

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

슬라이드 1

Microsoft Word - CPL-TR OM2M.doc

목차 1 전자정부프레임워크연동고려사항 실행환경 개발환경 어플리케이션배포 개발환경구성 Liberty profile 설치 Liberty profile v8.5.5 다운로드

Facebook API

슬라이드 1

SAS9.2_SAS_Enterprise_Miner_for_Desktop_install_guide

Install stm32cubemx and st-link utility

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

Microsoft PowerPoint - [Practice #1] APM InstalI.ppt

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

4. Compass 명령어를알아보자. compass <command> [<option>, <option>, <option>.. <option>] command : 명령어. clean - Remove generated files and the sass cache. com

<4D F736F F F696E74202D20C1A632C8B8C7D1B1B9BDBAC7C1B8B5BBE7BFEBC0DAB8F0C0D32D496E E D56432E BC8A3C8AF20B8F0B5E55D>

2. 기능요약 는 Java 의 Coverage 를측정하기위한도구 EclEmma 는 의기능을 Eclipse 에서사용할수있도록구현된 Plug-in 주요기능 지원내용 Code coverage 분석 지원 단위별 Coverage 분석 지원 Source highlighting 기

2. 기능요약 Parallel 빌드지원등빌드자동화기능을지원하며다양한도구 ( 형상관리도구, Issue Tracker, Test 도구, IDE) 와의연동을지원함. 주요기능 Parallel 빌드지원 ( 다수프로젝트동시빌드 ) 분산빌드웹기반관리 알림형상관리도구지원

PowerPoint 프레젠테이션

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

슬라이드 1

슬라이드 1

Microsoft PowerPoint - chap01-C언어개요.pptx

vRealize Automation용 VMware Remote Console - VMware

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

대규모 자바스크립트 웹어플리케이션개발하기 with BackboneJS and RequireJS 넷스루개발 2 팀이병주

tut_modelsim(student).hwp

Transcription:

Maven 1. 도구개요 2. 설치및실행 4. 활용예제

1. 도구개요 1.1 도구정보요약 도구명 Maven (http://maven.apache.org/) 라이선스 Apache License, Version 2.0 소개 자바기반프로젝트를빌드하고, 구성요소및라이브러리의존성을관리하는도구 특징 주요기능 프로젝트에필요한라이브러리를 POM 파일만으로쉽게구성가능 Convention over Configuration 개념으로관례적인프로젝트폴더구조사용 Jenkins 같은 CI 도구와연계하여빌드과정자동화가능 빌드로직의재사용및빌드관리 프로젝트스캐폴딩 (scaffolding) 의존성관리 원격리파지토리제공 빌드, 패키지, 로컬설치, 원격배포 실행환경 Windows, Linux, MacOS 사전설치도구 JDK 1.6+ 카테고리 빌드최신버전 v3.2.3 (2014.11) 관련도구 Ant, Gradle, Ivy 2

1. 도구개요 1.2 스크린캡쳐및주요기능 자바기반프로젝트의빌드관련작업을자동화해주는도구 Convention over Configuration 개념의프로젝트 Scaffolding 제공 라이브러리의존성관리 원격저장소를통한라이브러리및클래스패스자동구성 Maven은 CLI(Command Line Interface) 기반도구로스크린캡쳐할도구화면은없음 HTTP Maven Repository Project 기본폴더구조 pom.xml 컴파일, 단위테스트, 빌드, 로컬설치, 원격배포 3

2. 설치및실행 세부목차 2.1 Maven 다운받기 2.2 시스템등록 2.3 설치확인 4

2. 설치및실행 2.1 Maven 다운받기 다음의사이트에서 Maven 을다운 http://maven.apache.org/download.cgi 5

2. 설치및실행 2.2 시스템등록 (1/3) 다운받은 Maven 의압축을풀고시스템등록 제어판 시스템 ( 단축키 Windows+Break) 고급 환경변수 윈도우 XP 와 7 의환경변수설정위치는조금씩다름 6

2. 설치및실행 2.2 시스템등록 (2/3) 새로운시스템변수등록 새로만들기 변수이름 (MAVEN_HOME 과변수값 (Maven 압축을해제한위치의절대경로 ) 입력 7

2. 설치및실행 2.2 시스템등록 (3/3) 사용자변수편집 새로만들기 변수값을추가 : 변수이름 (PATH) 과변수값 (%MAVEN_HOME%\bin) PATH 변수가이미존재할시뒤에 ;%MAVEN_HOME%\bin 추가 8

2. 설치및실행 2.3 설치확인 명령프롬프트에서설치확인 시작 실행 cmd Prompt 에 mvn version 를실행 Maven 과 Java Platform, 운영체제의이름과버전을확인 9

세부목차 3.1 Template Java application 프로젝트생성 3.2 Template Web application 프로젝트생성 3.3 POM 설정파일 3.4 compile 3.5 test-compile 3.6 test 3.7 package 3.8 install 3.9 deploy 3.10 Dependency Library 관리 3.11 인코딩지정 3.12 Eclipse Plug-in 활용 10

3.1 Template Java application 프로젝트생성 각프로젝트의성격에맞도록 Template 프로젝트를제공 : archetype 프로젝트의생성 시작 실행 cmd 입력 사용자가원하는작업공간디렉토리로이동 Prompt 에서 mvn archetype:create -DgroupId=[groupId] -DartifactId=[artifactId] 입력» 본매뉴얼은 groupid 를 SMU 로지정, artifactid 를 gbuddhajavapp 로사전정의 프로젝트생성후의디렉토리구조 11

3.2 Template Web application 프로젝트생성 웹어플리케이션개발을위한 Template Archetype Prompt 에서 mvn archetype:create -DgroupId=[groupId] -DartifactId=[artifactId] - DarchetypeArtifactId=maven-archetype-webapp 입력 Archetype 의지정을위해 DarchetypeArtifactId=maven-archetype-webapp 를추가 실행후디렉토리구조 12

3.3 POM 설정파일 (1/2) POM 설정파일 : Archetype 을이용하여 Maven 기반프로젝트를생성할경우생성 (1/2) Project pom.xml파일의최상위엘리먼트 modelversion POM model의버전 groupid 프로젝트를생성하는조직의고유아이디, 일반적으로 Full도메인 13

3.3 POM 설정파일 (2/2) POM 설정파일 : Archetype 을이용하여 Maven 기반프로젝트를생성할경우생성 (2/2) artifactid» 해당프로젝트에의하여생성되는 artifact 의고유아이디» Maven 을이용하여 pom.xml 을빌드할경우 [artifactid]-[version].[packaging] 의규칙으로 artifact 가생성. 예시의경우빌드시 gbuddhajavapp-1.0-snapshot.jar 파일이생성 Packaging 해당프로젝트를어떤형태로 packaging 할것인지결정 (jar, war, ear 등 ) Version 프로젝트의현재버전, 개발중일시, SNAPSHOT 을접미사로사용 Name 프로젝트이름 url 프로젝트사이트가있다면사이트 URL 을등록하는것이가능 Dependency 현재생성한프로젝트와의존관계가있는프로젝트의패키지정보를나타냄 14

3.4 Template Web application 프로젝트생성 프로젝트를 build 하고관리 - 컴파일 build phase : compile Maven 에서러종류의 Build Phase 들을지원하며관리 : 구현코드의 콘솔창에서해당프로젝트의위치로이동 mvn compile 입력 Compile 명령은프로젝트의디렉토리에서 src\main\java 에위치한코드만을컴파일 Compile 후에는프로젝트디렉토리아래 target 디렉토리가생성 15

3.5 test-compile 테스트코드의컴파일 - build phase : test-compile 콘솔창에서해당프로젝트의위치로이동 mvn test-compile 입력 test-compile 명령은프로젝트의디렉토리에서 src\test\java 에위치한코드만을컴파일 test-compile 후에는프로젝트디렉토리아래 target\test-classes 디렉토리가생성 16

3.6 test 구현코드를테스트 - build phase : test 콘솔창에서해당프로젝트로이동 mvn test 입력 Test 명령은프로젝트의디렉토리에서 target\test-classes 의 junit 의단위테스트클래스를이용하여 target\classes 에위치한구현클래스를테스트 Test 한결과정보는프로젝트디렉토리아래 target\surefire-reports 디렉토리에생성 17

3.7 Package 구현코드를압축 (jar, war) - build phase : package 콘솔창에서해당프로젝트로이동 mvn package 입력 Package 명령을실행하면 compile, test-compile, test, package 순으로명령이실행 jar, war 파일이 target 디렉토리에생성 Pom 파일의 artifactid, version, packaging 정보가 package 파일의파일명으로지정» 생성된 jar, war 의파일명형식은 [artifactid]-[version].[packaging] 18

3.8 Install Local Repository 에등록 - build phase : install 콘솔창에서해당프로젝트로이동 mvn install 입력 compile, test-compile test package install Local Repository 에프로젝트가등록 윈도우기본지정위치 : C:\Documents and Settings\[ 사용자이름 ]\.m2\repository\[groupid] 19

3.9 Deploy Package 파일을 Remote Repository 에등록 - build phase : deploy compile test-compile test package install deploy Remote Repository 에등록 Remote Repository 의설정 : pom 파일추가하여설정가능 : Distribution : 설정섹션생성필요» id : 저장소의아이디설정» name : 저장소의이름을결정» url : 저장소의 url 을지정 [Snapshot version] [Snapshot version 이아닐때 ] 20

3.10 Dependency Library 관리 (1/5) 애플리케이션을개발시기존의외부라이브러리를관리방법의문제점 라이브러리의추가및버전변경이불편 버전관리시스템 (CVS, SVN) 을이용하여관리할때공유할파일크기가커짐 현재사용하고있는라이브러리의버전을파악하기힘듦 컴파일, 배포, 테스트할때만사용하는라이브러리를분리하기힘듦 WTP(Web Tool Platform) 의경우자동클래스패스기능이너무느림 기존의외부라이브러리의수정과정 라이브러리간의의존도가많아지면서라이브러리의수정이더욱힘듦 21

3.10 Dependency Library 관리 (2/5) Maven 의의존성관리 : POM 설정파일 POM 설정파일의 <dependencies> 섹션을변경하여관리 pom.xml 파일을아래와같이설정 mvn compile 명령실행 junit 3.8.1 버전의 jar 파일이자동으로 Local Repository 에다운 Jar 파일이관리되는원칙 : Maven Local Repository 의변경없이디폴트디렉토리를사용하고있다면 USER_HOME]\.m2\repository 디렉토리에모든 Dependency 라이브러리가다운받아짐 윈도우의경우 USER_HOME 은 C:\Documents and Settings\[ 사용자아이디 ] 아래와같이 pom.xml 파일을설정 다음위치에라이브러리의 jar 파일이다운 USER_HOME\.m2\repository\junit\junit\3.8.1\junit-3.8.1.jar 라이브러리를관리하는디렉토리의규칙 : USER_HOME\.m2\repository\[groupId]\[artifactId]\[artifactId-version.jar] 라이브러리의버전을변경은 pom.xml 파일에서 <version> 부분을수정하여변경 22

3.10 Dependency Library 관리 (3/5) 라이브러리의성격에따라각라이브러리의 Scope 지정가능 기본적으로프로젝트의생성시지원되는 junit 은단순히테스트를목적으로만사용되는라이브러리 pom.xml 파일에는 junit 의 dependency 설정내부의 scope 설정 : test Scope 설정및기능 compile : 기본값은 scope, 컴파일시에사용, 배포시에도같이배포되어야하는라이브러리 provided : JDK 가컨테이너에의하여제공되는라이브러리.» servlet.jar 의경우 Servlet 컨테이너에의하여제공되기때문에 provided scope 를사용 runtime : 컴파일시에는사용되지않지만애플리케이션을실행할때사용되는라이브러리 test : 테스트를위해서만사용하는라이브러리 system : provided 와비슷하지만, 직접 jar 파일을제공해야함.» repository 에서관리되지않을수도있습니다 23

3.10 Dependency Library 관리 (4/5) 의존관계중특정라이브러리배제기능 <exclusions> 사용자가사용할라이브러리 X 가라이브러리 A, 라이브러리 B 에의존성이있을경우, pom.xml 파일에는 X 만명시해도 A 와 B 는메이븐이알아서가져오게된다. X 의 A 에대한의존성이버전문제등으로제대로동작하지않을수도있는데, 이경우 <exclusions> 태그를사용해서 A 를배제하고사용자가직접 A 를가져와서의존성문제를해결할수있다. <project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">... <dependencies> <dependency> <groupid>org.apache.maven</groupid> <artifactid>maven-embedder</artifactid> <version>3.1.0</version> <exclusions> <exclusion> <groupid>*</groupid> <artifactid>*</artifactid> </exclusion> </exclusions> </dependency>... </dependencies>... </project> 24

3.10 Dependency Library 관리 (5/5) 부모프로젝트의버전범위지정 프로젝트 X 가다른프로젝트인프로젝트 A 에의존성이있을경우, <parent> 를통해 A 의설정사항을 X 가상속받을수있다.. 이때, A 의특정버전범위를명시해서, 해당조건을만족하는경우에대해서만상속받을수있도록설정할수있다. <project> <modelversion>4.0.0</modelversion> <parent> <groupid>org.apache</groupid> <artifactid>apache</artifactid> <version>[3.0,4.0)</version> </parent> <groupid>org.apache.maven.its.mng2199</groupid> <artifactid>valid</artifactid> <version>1</version> <packaging>pom</packaging> </project> 25

3.11 인코딩지정 (1/2) 소스인코딩지정 Eclipse 등 IDE 에서 JUnit 단위테스트를실행하면파라미터나결과값이한글이라도문제가없으나 시스템플랫폼 encoding 이 MS949 로되어있는윈도우에서 maven test 로수행하면 Failure 나 Error 가발생 pom.xml 에아래와같이소스컴파일, 테스트컴파일, 빌드, 빌드리포팅에인코딩지정설정 <project> <properties> <file.encoding>utf-8</file.encoding> <maven.compile.encoding>utf-8</maven.compile.encoding> <maven.test.compile.encoding>utf-8</maven.test.compile.encoding> <project.build.sourceencoding>utf-8</project.build.sourceencoding> <project.reporting.outputencoding>utf-8</project.reporting.outputencoding>... </properties> <dependencies> </dependencies> </project> 26

3.11 인코딩지정 (2/2) surefire plugin 에대한인코딩지정 pom.xml 에 mvn test 를실제수행하는 surefire plugin 의인코딩지정 <project> <build> <pluginmanagement> <plugins>.. <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-surefire-plugin</artifactid> <version>2.18</version> <configuration> <argline>-dfile.encoding=utf-8</argline> </configuration> </plugin>.. </plugins> </pluginmanagement> </build> </project> 27

3.12 Eclipse Plug-in 활용 (1/3) Eclipse 에서의프로젝트생성 프로젝트디렉토리로이동 "mvn eclipse:eclipse" 명령어실행 Eclipse 기반프로젝트로변경 Eclipse 프로젝트에필요한.project,.classpath 파일들이자동적으로생성 28

3.12 Eclipse Plug-in 활용 (2/3) Java application 의 Eclipse 프로젝트를생성.classpath 파일에 pom.xml 파일에정의된의존관계에있는라이브러리가자동으로추가 라이브러리를배포할때자바소스까지분리해서배포하는것이가능하도록지원 기존의외부라이브러리에대한소스코드가존재하지않아소스코드를분석하는데한계가있었지만, Maven 을이용하여소스코드를배포하는모든라이브러리의소스코드는자동적으로 Local Repository 에다운받아지기때문에 Eclipse 에서외부라이브러리소스코드에접근이용이 29

3.12 Eclipse Plug-in 활용 (3/3) WTP(Web Tool Project) 기반의 Eclipse 프로젝트를생성 pom.xml 에다음과같이 <plugins> 에 maven-eclipse-plugin 설정을추가하여해결 이설정을적용하여 mvn eclipse:eclipse 명령을실행하면 WTP 기반의 Web application 프로젝트를 Eclipse 프로젝트로생성할수있음 30

4. 활용예제 세부목차 4.1 예제소개 4.2 프로젝트설정 4.3 Depedency Library 관리 4.4 Eclipse 연동 4.5 Build Phase 31

4. 활용예제 4.1 예제소개 예제시스템 : Maven의활용계획이있는 A사 A사는WTP 기반의Web application 프로젝트준비중 - 프로젝트진행에 JDK이외의외부라이브러리를사용하기로결정 - 해당 application 을위해다음의프레임워크라이브러리들을사용 Struts, Spring Framework, Hibernate A사의프로젝트준비중이전진행프로젝트를돌아본결과예상되는문제점 - 프로젝트준비를위해 WTP구조의환경을설정하는작업에많은도구와시간이소요될것으로예상 - 라이브러리간의의존성복잡도로인해프로젝트설정이늦어질것으로예상 - 통합개발도구와연동에대해개발자들의불편함을보일것으로예상 - 프로젝트의빌드과정에따른많은반복적인작업에대한불편함이예상 A사는 Maven 을사용하여문제를해결 - Maven 의 archetype 을이용한 WTP기반의 Web application 프로젝트설정 - Dependency Library 기능을통하여손쉽게라이브러리를관리 - Eclipse Plug-in을이용하여 Eclipse 기반의 WTP프로젝트를생성하고 Maven 과연동 - Build phase 기능을사용하여일괄적이며번거로운작업들의반복을피함 32

4. 활용예제 4.2 프로젝트설정 프로젝트설정 : 프로젝트 (Aproject), 디폴트프로젝트 (Web application) 콘솔창에서원하는위치의작업공간위치로이동 archetype 기반의 Web application 생성 mvn archetype:create -DgroupId=teamA -DartifactId=Aproject - DarchetypeArtifactId=maven-archetype-webapp 프로젝트의생성여부를확인 pom.xml 파일을수정 33

4. 활용예제 4.3 Dependency Library 관리 (1/2) 프로젝트에사용할의존성라이브러리설정 라이브러리의존성예시 34

4. 활용예제 4.3 Dependency Library 관리 (2/2) POM 설정을바탕으로프로젝트의 pom.xml 파일의 <dependency> 섹션에추가 Pom.xml 파일을수정 프로젝트를 compile 라이브러리자동으로 repository 에추가 35

4. 활용예제 4.4 Eclipse 연동 Eclipse 에서사용할수있는프로젝트로변경 작업공간으로이동하여콘솔창에서 Eclipse Plugin 명령 mvn eclipse: eclipse 만약라이브러리에대한소스경로를찾지못한다는메시지가출력될시이를위해 Eclipse 를실행 프로젝트를 Import Eclipse 의 classpath 변수를추가» 변수명 : M2_REPO» 경로 : 프로젝트의 Repository 36

4. 활용예제 4.5 Build Phase Build Phase 를이용하여각 Build Phase 의목적에맞는 Goal 을설정 build phase 의 lifecycle Clean lifecycle pre-clean : 프로젝트의제거전에필요한과정을수행 Clean : 이전빌드로생성된모든파일을제거 post-clean : 프로젝트제거의마무리과정을수행 Package lifecycle Compile : 프로젝트의소스코드를컴파일 test-compile : test 소스코드를컴파일 Test : test framework 를이용하여 test 를수행, Package 나 deploy 시에는필요없음 Package : 프로젝트를 jar, war, ear 등 package 파일로생성 Install : local repository 에해당 package 를설치 Deploy : 원격의 repository 에패키지를다른개발자와공유할수있도록설치 Site lifecycle pre-site : 프로젝트의사이트를생성하기전의과정을수행 Site : 프로젝트사이트문서를생성 post-site : 프로젝트의사이트생성의마무리과정을수행하고사이트배치를준비 site-deploy : 웹브라우저에서프로젝트의사이트를확인할수있도록사이트를배치 37