Maven 이란?
자바 프로젝트의 빌드를 자동화 해주는 Build Tool
설정파일
-
setting.xml
- Maven 툴과 관련된 설정을 담당
- MAVEN_HOME/conf/에 위치, 사용자별 적용하려면 USER_HOME/.m2/에 설정 가능
-
pom.xml
- Project Object Model
- 프로젝트 내 빌드설정을 담당
- 프로젝트 최상위에 존재
<?xml version="1.0" encoding="UTF-8"?>
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.nesoy</groupId> <!-- 프로젝트를 생성하는 조직의 고유 아이디-->
<artifactId>demo-maven</artifactId> <!-- 프로젝트를 식별하는 유일한 아이디-->
<version>1.0-SNAPSHOT</version> <!-- 프로젝트 현재 버젼을 의미-->
<packaging>war</packaging> <!-- 프로젝트를 어떤 형태로 패키징할지 결정한다. jav, war, ear, pom등이 해당된다.-->
<!-- 프로젝트와 의존관계에 있는 라이브러를 관리 -->
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
</project>
-
의존 라이브러리 추가하기
- MVN Repository : https://mvnrepository.com/
- pom.xml에 dependencies Tag 안에 쓰고 저장하기
<!-- 프로젝트와 의존관계에 있는 라이브러를 관리 -->
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
-
확인하기
-
라이프사이클
Maven은 미리 정의하고 있는 빌드 순서를 라이프사이클 이라고 한다.
-
기본 라이프 사이클
- compile : 소스 코드를 컴파일
- test : 단위 테스트 실행 (기본설정은 단위 테스트가 실패하면 빌드 실패로 간주함)
- package : 컴파일된 클래스 파일과 리소스 파일들을 war 혹은 jar와 같은 파일로 패키징
- install : 패키징한 파일을 로컬 저장소에 배포 (USER_HOEM/.m2/)
- deploy : 패키징한 파일을 원격 저장소에 배포 (nexus 혹은 maven central 저장소)
-
clean 라이프 사이클
- clean : 메이븐 빌드를 통하여 생성된 모든 산출물을 삭제
-
site 라이프 사이클
- site : 메이븐 설정파일 정보를 활용하여 프로젝트에 대한 문서 사이트를 생성
- site-deploy : 생성한 문서 사이트를 설정되어 있는 서버에 배포
-
Intellij Maven Project 만들기
-
Maven 선택하기
-
groupId, ArtifactsID 설정
-
project 설정
-
project Structure 모습
-
-
기존의 Project에 Maven 추가하기
-
Add Framework Support 설정으로 넘어가 Maven 선택하기
-
-
Intellij Maven Life Cycle
-
실행하고 싶은 lifecycle을 더블클릭하면 실행이 된다.
-
참조
http://www.slideshare.net/ssuser5445b7/ss-56566336
https://www.jetbrains.com/help/idea/2016.3/getting-started-with-maven.html#create_maven_project