Post

메이븐-소개

메이븐-소개

메이븐 소개

메이븐(Maven)은 앤트(Ant)와 더불어, 자바 개발자가 자주 사용하는 빌드 툴 중 하나. 빌드툴은 단계별 지정된 행위를 실행시켜주는 도우미.

메이븐 장점

  • 의존성 관리
  • 기본 규약 제공(CoC : Convension over Configuration)
  • 유용한 여러 플러그인

메이븐 단점

  • 장환한 설정
  • 높은 학습 비용
  • XML 엘리먼트만 사용

기본 규약 제공(CoC : Convension over Configuration)

  • 미리 정의되어 있는 작업을 실행하면 사전에 정의된 절차에 따라 절차를 실행하면 작업을 수행

기본 규약 제공 - CoC

기존 작업 VS 메이븐

  • 기존 작업에서는 소스코드 컴파일을 설정하고 그 다음 테스트 코드를 컴파일하여 테스트 코드가 실행하도록 사용자가 직접 정의
  • 메이븐에서는 기본 규약을 통해서 테스트 코드 실행에 정의된 사전 절차를 자동으로 실행한 후 테스트 코드 실행가 실행됨.

페이즈(Phase)와 골(Goal)

  • 각각의 프로젝트 빌드 기능을 메이븐에서는 골<Goal>이라고 함.
  • 여러 골(Goal)을 하나의 페이즈(Phase)로 묶어서 한번에 여러 작업을 순차적으로 실행

Maven Phase - Goal

메이븐 라이프 사이클

Phases plugin:goal
process-resources resources:resources
compile compiler:compile
process-classes  
process-test-resources resources:testResources
test-compile compiler:testCompile
test surefire:test
prepare-package  
package jar:jar
install  
deploy  

메이븐 실행

페이즈<Phase> 이름

1
2
3
4
5
mvn '페이즈 이름'

-- 실행 에제
mvn package
mvn test

Goal

  • Maven이 실행할 수 있는 여러가지 동작을 수행하는 명령을 Goal 이라고 함
  • 실행 방식, 체인 형태로 실행가능
1
mvn [goal 명령어] [goal 명령어] [goal 명령어]
Goal 종류
  • clean
    • 컴파일 결과물인 target 디렉토리 삭제
  • compile
    • 모든 소스코드, 컴파일, 리소스 파일을 target/classes 디렉토리에 복사
  • package
    • compile 수행 후, 테스트 수행, <packaging> 정보에 따라 패키징 수행
  • install
    • package 수행 후, local repo에 install 수행
  • deploy
    • install 수행 후, 배포 수행, 여기서 배포는 웹 서버에 배포가 아니라, Repository에 배포
    • 아래와 같이 distributionManagement 항목이 기술되어야 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
...생략
<distributionManagement>
    <repository>
        <id>releases-repo</id>
        <name>Releases Repository</name>
        <url>회사 Repository주소(넥서스)</url>
    </repository>
    <snapshotRepository>
        <id>snapshots-repo</id>
        <name>Snapshots Repository</name>
        <url>회사 Repository주소(넥서스)</url>
    </snapshotRepository>
</distributionManagement>
Goal 이름
1
2
3
4
5
mvn '골 이름'

-- 실행 에제
mvn jar:jar
mvn surfile:test
This post is licensed under CC BY 4.0 by the author.