메이븐-소개
메이븐-소개
메이븐 소개
메이븐(
Maven
)은 앤트(Ant
)와 더불어, 자바 개발자가 자주 사용하는 빌드 툴 중 하나. 빌드툴은 단계별 지정된 행위를 실행시켜주는 도우미.
메이븐 장점
- 의존성 관리
- 기본 규약 제공(CoC : Convension over Configuration)
- 유용한 여러 플러그인
메이븐 단점
- 장환한 설정
- 높은 학습 비용
- XML 엘리먼트만 사용
기본 규약 제공(CoC : Convension over Configuration)
- 미리 정의되어 있는 작업을 실행하면 사전에 정의된 절차에 따라 절차를 실행하면 작업을 수행
기존 작업 VS 메이븐
- 기존 작업에서는 소스코드 컴파일을 설정하고 그 다음 테스트 코드를 컴파일하여 테스트 코드가 실행하도록 사용자가 직접 정의
- 메이븐에서는 기본 규약을 통해서
테스트 코드 실행
에 정의된 사전 절차를 자동으로 실행한 후테스트 코드 실행
가 실행됨.
페이즈(Phase
)와 골(Goal
)
- 각각의 프로젝트 빌드 기능을 메이븐에서는 골
<Goal>
이라고 함. - 여러 골(
Goal
)을 하나의 페이즈(Phase
)로 묶어서 한번에 여러 작업을 순차적으로 실행
메이븐 라이프 사이클
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.