일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- javascript
- input
- Maven
- windows
- IntelliJ
- vscode
- CMD
- CSS
- Array
- 문자열
- Java
- table
- 이탈리아
- list
- Eclipse
- html
- json
- string
- 이클립스
- 배열
- ArrayList
- date
- Button
- js
- 테이블
- 자바스크립트
- Visual Studio Code
- 자바
- Files
- 인텔리제이
- Today
- Total
어제 오늘 내일
[Maven] Build Lifecycle과 Phase, Goal (빌드 생명주기와 단계, Goal) 본문
Maven은 빌드 생명주기(Lifecycle)를 따라, 빌드, 배포됩니다.
Maven Build Lifecycle (빌드 생명주기)
Maven에 빌트인 된 생명주기는 다음 3가지가 있습니다.
- default : 프로젝트 빌드 및 배포합니다.
- clean : 이전 빌드에서 생성된 파일들을 삭제합니다.
- site : 프로젝트 사이트를 생성합니다.
Maven Phase (단계)
각각의 생명주기는 몇 개의 Phase로 구성됩니다.
clean은 3개의 Phase로 구성되고, default는 23개, site는 4개의 Phase로 구성됩니다.
자세한 생명주기 별 Phase 목록은 아래 사이트에서 확인하세요.
https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference
Maven default 생명주기의 주요 Phase
여기서는 default 생명주기의 주요 phase를 살펴보겠습니다.
validate
빌드를 위한 프로젝트 정보의 유효성을 체크합니다.
compile
코드를 컴파일 합니다.
test
컴파일된 소스코드를 사용하여, 단위 테스트를 수행합니다.
package
배포할 파일 형식으로 패키징 합니다.
(ex) JAR, WAR 파일을 생성합니다
verify
패키지의 유효성을 검사하고, 품질 기준을 만족하는지 체크합니다.
install
로컬 repository에 패키지를 설치합니다.
(다른 로컬 프로젝트에서 참조할 수 있도록)
deploy
최종 패키지를 원격 repository에 복사합니다.
(다른 개발자나 프로젝트에서 참조할 수 있도록)
이 생명주기의 phase들은 순서대로 실행됩니다.
유효성 검사(validate)
→ 컴파일(compile)
→ 단위 테스트(test)
→ 패키징(package)
→ 검증(verity)
→ 인스톨(install)
→ 배포(deploy)
Phase 실행시키기
mvn phase
위 명령어를 사용해서 각 phase를 실행시킬 수 있습니다.
phase를 지정하여 위 구문을 실행하면,
지정된 phase 뿐만 아니라, 지정된 phase 이전 phase도 모두 실행됩니다.
mvn package
예를 들어, 위와 같이 package 단계를 실행시키면,
그 이전의 단계를 모두 순서대로 실행하여
validate, compile, test, package 단계가 모두 실행되게 됩니다.
Goal
각 Phase에는 plugin goal들이 바인딩 되어 있습니다.
plugin goal은 특정 task를 수행합니다.
plugin goal들은 여러개의 phase에 바인딩 될 수도 있고,
phase에 바인딩되지 않을 수도 있습니다.
phase에 바인딩되지 않은 goal은 직접 실행시킬 수 있고,
phase에 바인딩된 goal은 phase가 실행될 때 실행됩니다.
plugin goal은 pom.xml의 <plugins> 영역에 정의됩니다.
ex)
compiler:compile
- compiler plugin의 goal은 compile phase에 바인딩 됩니다.
'IT > maven' 카테고리의 다른 글
[Maven] package와 install의 차이 (0) | 2023.04.03 |
---|---|
[Maven] Proxy 설정하기 (0) | 2023.04.02 |
[Maven] 로컬 repository 설정하기 (0) | 2023.03.31 |
[Maven] settings.xml 파일의 위치 (0) | 2023.03.31 |
CMD에서 간단한 Maven 프로젝트 생성하기 (0) | 2023.03.23 |