3D Graphic Technical Artist
[Maven 실습1] 메이븐 설치, 메이븐 프로젝트 만들기 본문
#0.
메이븐을 공부하기위한 가장 첫번째 단계로 '자바 세상의 빌드를 이끄는 메이븐' 책을 가장 많이 추천한다.
코칭 플랜 시작은 2월이었고 책도 그때쯤 샀는데 이제서야 실습을 하고 있다ㅜ
그치만 최근 의욕이 불타오르고 있기에 차근차근 빨리 끝내 보려고 한다ㅋ.ㅋ
#1. 메이븐 설치
메이븐 설치는 아주 간단하다.
http://maven.apache.org/douwnload.html에서
1. apache-maven-2.~(version)-bin.zip 파일을 다운로드
2. 다운받은 후 압축 푼 파일 경로로 MAVEN_HOME 지정
3. PATH도 지정
4. cmd 에서 'mvn -version' / 'mvn -v' 확인
▲ cmd 'mvn -v' 확인
#2. 메이븐 아키타입을 이용하여 jar 프로젝트 생성
mvn archetype:generate -DgroupId=net.er1ca -DartifactID=myfirst
-DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
> 간단 설명
-DgroupId=net.er1ca
: 프로젝트의 도메인명
-DartifactID=myfirst
: 프로젝트 이름
-DarchetypeArtifactId=maven-archetype-quickstart
: 메이븐 아키타입 종류
-DinteractiveMode=false
:..?
명령 프롬프트에서 위 코드를 실행하면 명령 프롬프트를 실행한 디렉토리 아래에 'myfirst'라는 이름으로 프로젝트가 자동 생성된다.
▲ 생성된 프로젝트(myfirst)의 디렉토리 구조
> 메이븐 명령어 요약 ..
http://cafe.naver.com/tech2u/1127
> 생성된 프로젝트(myfirst)의 pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <groupId>net.er1ca</groupId> <name>myfirst</name> <properties> <dependencies> |
> mvn test
- 프로젝트가 정상적으로 생성 되었는지 확인
- 단위테스트에 필요한 작업을 먼저 실행 후 최종적으로 단위 테스트를 진행하는 과정
1. compiler : compile - 'src/main/java' 소스코드 컴파일
2. compiler : testCompile - 'src/test/java' 소스코드 컴파일
3. urefire : test - 단위테스트 실행
#3. 위키 북 템플릿 프로젝트 생성
아래 명령어를 실행하면 메이븐에서 기본적으로 제공하는 58개의 아키타입 목록을 확인 할 수 있다.
mvn archetype:generate -DarchetypeCatalog=internal
▼ 실행 결과
19번 maven-archetype-webapp 을 선택한다.
#4. 메이븐 설정파일
1. settings.xml
- 메이븐 빌드 툴과 관련한 설정파일
- MAVEN_HOME/conf 디렉토리에 위치 (메이븐 설치 시 기본 제공)
- settings.xml의 <localRepository> 설정
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ~/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
** 메이븐을 빌드할 때 의존 관계에 있는 라이브러리, 플러그인을 중앙 저장소에서 개발자 PC로 다운로드 하는위치(로컬저장소)의 기본 설정 'USER_HOME/.m2/repository' 인데 settings.xml의 <localRepository>에 원하는 로컬 저장소의 경로를 지정, 변경할 수 있다.
2. pom.xml
- 메이븐 기반 프로젝트에서 사용하는 설정파일
- 기본 구성요소 4가지 : 프로젝트 기본정보, 빌드 설정, 프로젝트 관계 설정, 빌드 환경
- 메이븐은 빌드와 관련된 정보를 프로젝트 객체 모델(Project Object Model)로 정의
- groupId + artifactId의 값이 유일한 값이어야함
- 대부분의 프로젝트는 다른 라이브러리 또는 프로젝트와 의존 관계를 가지며, 각 프로젝트 사이에서 상속 관계를 가지는 경우도 있다.
> 생성된 wikibook 프로젝트의 pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
* project : pom.xml 파일의 최상위 엘리먼트
* modelVersion : POM 모델의 버전, 최근버전 4.0.0, 수정x
* groupId : 프로젝트를 생성하는 조직의 고유 아이디, 일반적으로 도메인 이름
* artifactId : 프로젝트를 식별하는 유일한 아이디
예) net.er1ca라는 groupId를 사용하고 있는 조직에 여러개의 프로젝트가 있을 수 있음
* packaging : 프로젝트를 어떤 형태로 패키징 할지 결정 (jar,war,ear,pom 등)
* version : 프로젝트의 현재 버전,
개발 완료 된 버전-1.0,2.0 , 개발 중 SNAPSHOT을 접미사로 사용, SNAPSHOT을 사용하면 라이브러리를 다른 방식으로 관리함
* name : 프로젝트 이름
* dependencies : 프로젝트와 의존관계에 있는 라이브러리를 관리함
#5. 최상위 POM 설정 파일
- 기본으로 사용하는 디렉토리(소스코드, 테스트 소스 코드, 리소스, 테스트 리소스 등) 구조, 중앙 저장소, 플러그인 같은 정보 포함
- 메이븐에 포함되어 있는 jar 파일을 통하여 배포함(..?)- 모든 메이븐 설정 파일의 부모 POM 역할
- 모든 설정 파일은 기본으로 최상위 POM을 상속하는 구조
- 상속하는 POM 파일 내용 확인 : mvn help:effective - pom
> pom.xml파일 에서 메이븐 기본 소스 디렉토리 구조 변경
메이븐은 최상위 POM에서 정의한 모든 설정을 재정의 할 수 있음
<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>net.bok</groupId> <artifactId>wikibook</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>wikibook Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>wikibook</finalName> <sourceDirectory>src/java</sourceDirectory> <testSourceDirectory>src/test</testSourceDirectory> <resources> <resource> <directory>src/resources</directory> </resource> </resources> <plugins> <plugin> <artifactId>maven-war-plugin</artifactId> <configuration> <warSourceDirectory>webapp</warSourceDirectory> </configuration> </plugin> </plugins> </build> </project> |
▲ 굵은 부분 추가
#6. 정리
> wikibook 프로젝트 실습 순서
1. wikibook 프로젝트 생성(maven-archetype-webapp, 19번)
2. mvn test 실행
3. jar프로젝트 src 폴더 복사 붙여넣기
4. wikibook/src/main/webapp 폴더를 최상위로 위치 변경(wikibook/webapp)
5. pom.xml 코드 수정 ('pom.xml파일 에서 메이븐 기본 소스 디렉토리 구조 변경' 참조)
6. mvn package 실행
> 최종 wikibook 디렉토리 구조
'공부(~2014) > Maven' 카테고리의 다른 글
[Maven 실습2] 메이븐 라이프사이클 (0) | 2013.05.09 |
---|