TOOL/BUILDER 2015. 12. 11. 20:24

///// Maven (메이븐)

컴퓨터 프로그래밍 언어의 하나인 자바 (JAVA)의 빌드 툴이다. 


///// 다운로드 

http://maven.apache.org/download.html


///// 설치

1. 압축 풀기

2. 환경 변수 설정

MAVEN_HOME=

PATh=MAVEN_HOME/bin


///// 설정하기(설정파일: MAVEN_HOME/conf/settings.xml)

- 로컬저장소 위치 변경

<localRepository>경로</localRepository>




///// 프로젝트 생성

mvn archetype:generate -DgroupId=com.test.start -DartifactId=projectname -DarchtypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

1) 프로젝트 구조(폴더)가 기본적으로 생성됨

projectname/pom.xml

projectname/src/main/java

projectname/src/main/java


2) App.java와 AppTest.java가 생성됨

projectname/src/java/com/test/start/App.java

projectname/test/java/com/test/start/AppTest.java


///// 테스트 하기

mvn test-compile

projectname/src/main/resources의 자원들을 projectname/target/classes로 복사

projectname/src/main/java의 소스를 컴파일하여 projectname/target/classes로 복사

src/test/resources의 자원을 target/test-classes로 복사

src/test/src/main/java의 소스를 컴파일하여 target/test-classes로 복사


mvn test

1) test-compile 후

2) 실행하여 결과 보고(테스트 함)


///// 컴파일 하기(.java -> .class )

mvn compile

1) projectname/src/main/resources의 자원들을 projectname/target/classes로 복사

2) projectname/src/main/java의 소스를 컴파일하여 projectname/target/classes로 복사


///// 테스트 및 컴파일 데이터 지우기

mvn clean

projectname/target 폴더를 삭제


///// 프로젝트 패키징 (jar 또는 war파일로 압축)

mvn package

1) projectname/target 에 패키징된 파일이 저장됨


mvn install

1) package 후

2) USER_HOME/.m2/repository/com/test/start/projectname/target 에 패키징된 파일이 복사됨


mvn deploy

2) install 후

3) 외부저장소에 복사됨






///// 유용한 기능 

- 로그 파일 생성

mvn clean install --log-file 파일명.txt


- 디버깅 로그 파일 생성 

mvn clean install -X > 파일명.txt


- 단위 테스트 실행하지 않고 패키징하기

mvn –Dmaven.test.skip=true package


- 디펜던씨(의존관계) target폴더로 싹 가져오기

mvn dependency:copy-dependencies 

1) target/dependency 디렉토리가 생성됨

2) jar파일이 복사됨(pom.xml의 <dependencies>에 설정한 것 외에도 설정한 것의 의존 관계의 jar도 복사됨)


- 라이브러리 구조를 트리(tree) 형태로 파악

mvn dependency:tree


mvn dependency:resolve

















///// 간단한 개념

- 실행 단위(?)

페이즈(Phase)

플러그인(plugin)

골(Goal)


- 메이븐 저장소

중앙 저장소 : 

원격 저장소 : 

로컬 저장소 : 개발자 PC의 USER_HOME/.me/repository


- POM (Project Object Model)

 메이븐 저장소 설정

<repositories>

<repository>

...

</repository>

<repository>

...

</repository>

</repositories>


 라이브러리 관리

<dependencies>

<dependency>

...

</dependency>

<dependency>

...

</dependency>

</dependencies>






///// 에러

에러: cannot find symbol

문제:

해결:

참조:


에러: cannot read zip file

문제:

해결:

참조:


에러: package net.sf.json does not exist

문제: 

해결: 

1) pom.xml을 열고

2) <groupId>net.sf.json-lib</groupId> 을 검색해서

3) <version>2.2.3</version>을 <version>2.4</version>로 변경

참조: http://stackoverflow.com/questions/4173214/maven-missing-net-sf-json-lib



에러: package org.springmodules.validation.commons does not exist

문제: 

1. 내 IDE(인텔리제이14)로 해당 Class를 확인했다.

1) [ERROR] location에 찍힌 class를 연다.

2) [ERROR] symbol에 찍힌 class를 사용하고 있는 곳을 [Ctrl]+[클릭]하여 들어가 보니

2. Negative to the spring bean declaration(s) 라는 경고가 표시되어 있다.

해결: 

참조: 



에러: unmappable character for encoding MS949

문제: 인코딩 설정 문제

해결: 

<plugin> 

<groupId>org.apache.maven.plugins</groupId> 

<artifactId>maven-compiler-plugin</artifactId> 

<version>2.5.1</version> 

<configuration> 

<source>${java-version}</source> 

<target>${java-version}</target> 

<encoding>UTF-8</encoding> 

</configuration> 

</plugin>

참조:







///// 참고

메이븐(Maven) Part 1 What is Maven : http://rakisis.tistory.com/16

Maven 5장 - 메이븐을 이용한 의존 라이브러리 관리 : http://gt1000.tistory.com/entry/Maven-5%EC%9E%A5-%EB%A9%94%EC%9D%B4%EB%B8%90%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%9D%98%EC%A1%B4-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%EA%B4%80%EB%A6%AC

Maven 가이드 01. 설정과 생성 : http://pirrip.tistory.com/entry/Maven-%EA%B0%80%EC%9D%B4%EB%93%9C-01


'TOOL > BUILDER' 카테고리의 다른 글

[Gulp] 시작하기 - 버전 3  (0) 2016.01.17
[GRUNT 0.4.x] Gruntfile.js  (0) 2016.01.02
[GRUNT 0.4.x] 모듈 설치  (0) 2016.01.02
[Maven] tomcat:run  (0) 2015.12.30
Gradle & Maven (작성중)  (0) 2015.08.26