티스토리 뷰
Goal
- 메이븐 명령어들의 실행 구조에 대해 알아본다
- pom.xml 파일에 대해 알아본다.
- 플러그인에 대해 알아본다.
이번 포스팅에서는 메이븐 명령어의 종류와 명령어의 구조를 파악하고 명령어가 어떻게 실행 되는지 알아본다.
1. 메이븐 프로젝트와 단계 (Phase)
저번 포스팅에서 Maven을 통한 java소스 파일의 컴파일과 실행시에 'mvn compile, mvn test, mvn package'와 같은 명령어들을 사용했다. 이런 명령어들은 프로젝트 빌드의 한 부분을 구성하며, 프로젝트에서 단계(Phases)라고 불린다.
1) 프로젝트 빌드 단계들 (lifeCycle)
- 프로젝트 빌드의 단계는 몇 가지로 이루어져 있어며 어떤 순서로 존재하는지 알아보자.
vaildate
initialize
generate-sources
process-sources
generate-resources
process-resources
compile
process-classes
generate-test-sources
generate-test-resources
process-test-resources
test-compile
process-test-classes
test
prepare-package
package
pre-integration
integration-test
post-integration-test
verift
install
deploy
- 위와 같이 엄청나게 긴 단계를 거쳐 프로젝트가 빌드되는데 여기에는 우리에게 익숙한 compile, test등의 단계도 있다.
프로젝트를 빌드할 때 이렇게 많은 명령어(단계)들을 다 수행해야 할까?
그렇지 않아도 된다. 각 단계들은 반드시 실행되는 것이 아니며, 설정을 통해 자동으로 실행되는 것들도 있다. 예를들어 메이븐에서 compile명령어를 수행하면 compile앞의 단계들은 자동으로 실행이 된다. 또한 test단계를 실행하면 앞의 단계를 자동적으로 진행한다.
2. pom.xml 파일
- project object model(pom) : 프로젝트를 구성하고 있는 내용을 하나의 모델로써 가지고 있는 파일. pom파일을 통해 프로젝트의 구조와 다양한 방식을 수정할 수 있다.
- pom.xml은 단계를 구성하는데 있어서 중요한 역할을한다. pom.xml 파일을 통해 프로젝트의 성격을 구분하여 (web프로젝트인지 jar프로젝트인지 등) 단계를 편집할 수 있다.
3. 플러그인
- 메이븐은 각 단계들을 플러그인으로 끊어놨기 때문에 플러그인을 통해 각 단계들을 제어할 수 있다.
- 플러그인 : 각 단계가 갖는 프로그램으로 독립적으로 단계를 제어한다. 플러그를 뺐다 꽂는 것 처럼 플러그인을 통해 단계들을 실행시키거나 뺄 수 있다.
- 플러그인의 연결설정은 pom.xml에서 한다 (버전 변경, 플러그인 교체 및 설정 등)
*Goal : 플러그인을 구성하는 작은 프로그램들
1) Phase의 구성
단계(Phase) <- 플러그인 <- 골
프로젝트에는 단계가 있고, 단계는 플러그인이 수행하며 <-플러그인은 goal로 구성되어 있다.
2) 플러그인을 가져오는 방법
- 메이븐이 기본적으로 제공해주거나 외부에서 가져올 수있음
ex) Java 파일을 메이븐을 통해 jar로 만들었으면 기본적으로 여러가지 플러그인들이 매핑되어져 있어서 해당 단계를 자동적으로 실행해준다.
* 매핑 : 플러그인들을 기본적으로 해당 명령어에 심어주는 것.
* mvn help:describe -Dcmd=compile
- 위의 명령어를 콘솔에 입력하면 compile단계를 하는데 있어서 필요한 플러그인과 현재 패키지에 매핑된 플러그인들을 기술해준다.
'Spring > Maven' 카테고리의 다른 글
Maven in Eclipse (0) | 2020.04.23 |
---|---|
컴파일과 실행하기 (0) | 2020.04.23 |
Maven으로 자바 프로젝트 생성하기 (0) | 2020.04.23 |
Maven 설치하기 (0) | 2020.04.23 |
메이븐 (Maven) 이란? (0) | 2020.04.23 |
- 20200622
- 20200403
- 20200804
- 20200504
- 20200429
- chapter8
- 20200421
- 백준
- 생활코딩리눅스
- likelion
- 20200317
- 20200503
- 20200330
- 20200417
- 20200415
- 20200406
- 20200319
- 20200510
- 20200624
- 20200428
- 20200420
- 20200424
- 20200502
- 20200425
- 20200423
- chapter7
- 20200427
- 20200512
- 20200413
- 20201204
- Total
- Today
- Yesterday