티스토리 뷰
0. 메이븐의 빌드는 라이프사이클을 구성하는 phase와 phase와 바인딩되는 plugin의 goal로 처리된다.
0-1 라이프사이클의 phase는 plugin의 goal과 바인딩 된 경우는 실행되고 안된 경우는 넘어간다.
0-2 메이븐의 plugin이 아닌 다른 3rd party plugin으로 바인딩 되지 않은 라이프사이클 phase를 처리할 수도 있다.
1. 메이븐은 기본적으로 3개의 라이프 사이클을 가지고 있다. clean, default, site 이다.
1-1 Clean - working directory(즉 src 아래의 파일들)로 부터 파생된 모든 부산물을 정리한다.
1-1-1 기본적으로 plugin 바인딩이 되므로 그냥 실행하면 된다.
1-2 Default - 프로젝트를 빌드하고 deploy한다.
1-2-1 기본적으로 plugin과 바인딩이 되지 않은 상태로 POM에 package 형태를 명시해야 바인딩 된다.
1-3 site - 웹사이트를 생성해 주고 기본적으로 plugin과 바인디되어 있다. 잘 사용하지 않는다.
2. clean lifecyle
2-1 clean 라이프사이클은 pre-clean, clean, post-clean phase로 구성되어 있다.
2-2 이 세가지 phase중에 유일하게 clean만 Clean Plugin의 clean goal에 바이딩되어 있어 실행 가능하다.
2-3 라이프 사이클은 phase로 구성되어 있고 plugin의 명령어는 goal이라고 하는데, 별도의 개념임을 유의한다.
3. Default Lifecyle - default는 패키징의 형식에 따라서 phase가 결정된다.
3-1 전체적으로 Validate, Compile, Test, Package, Verify, Install, Deploy phase로 구성되어 있다.
3-1-1 세부적으로 엄청 많은 phase가 존재한다. 1항의 그림을 참고한다.
3-2 Validate는 프로젝트가 정상적인 구조인지를 검증한다.
3-3 compile은 소스코드를 컴파일한다.
3-4 test는 컴파일된 코드를 테스트 한다.
3-5 package는 하나의 파일로 패키지 한다.
3-6 Verify는 정상적으로 동작하는지 전체적인 검증을 한다. 보통 Integration test를 수행한다.
3-7 install은 local 저장소에 완성된 프로젝트 패키지를 저장한다.
3-8 deploy는 central repository 같은 곳에 등록한다.
3-9 jar의 default lifecycle은 아래와 같이 설정되고 각 phase는 여러 plugin의 각 goal과 연결된다.
4. site build lifecyle
4-1 pre-site, site, post-site, site-deploy phase로 구성되어 있다.
4-2 각 phase와 plugin goal 바이딩 상황
'Side Technologies' 카테고리의 다른 글
Visual Studio Code : The project cannot be built until build path errors are resolved 에러가 계속 나오는 경우 (0) | 2020.07.21 |
---|---|
Maven : Wrapper 생성하기 (0) | 2020.07.20 |
Maven : 표준 디렉토리 레이아웃 (0) | 2020.07.20 |
Maven : 의존성 (0) | 2020.07.20 |
Maven : Maven POM (0) | 2020.07.20 |
- Total
- Today
- Yesterday
- 도커 개발환경 참고
- AWS ARN 구조
- Immuability에 관한 설명
- 자바스크립트 멀티 비동기 함수 호출 참고
- WSDL 참고
- SOAP 컨슈머 참고
- MySql dump 사용법
- AWS Lambda with Addon
- NFC 드라이버 linux 설치
- electron IPC
- mifare classic 강의
- go module 관련 상세한 정보
- C 메모리 찍어보기
- C++ Addon 마이그레이션
- JAX WS Header 관련 stackoverflow
- SOAP Custom Header 설정 참고
- SOAP Custom Header
- SOAP BindingProvider
- dispatcher 사용하여 설정
- vagrant kvm으로 사용하기
- git fork, pull request to the …
- vagrant libvirt bridge network
- python, js의 async, await의 차이
- go JSON struct 생성
- Netflix Kinesis 활용 분석
- docker credential problem
- private subnet에서 outbound IP 확…
- 안드로이드 coroutine
- kotlin with, apply, also 등
- 안드로이드 초기로딩이 안되는 경우
- navigation 데이터 보내기
- 레이스 컨디션 navController
- raylib
- Angular
- MYSQL
- 스프링부트
- Many-To-Many
- Rest
- jsp
- login
- 하이버네이트
- WebMvc
- Validation
- 상속
- XML
- form
- 스프링
- 자바
- 외부파일
- 로그인
- mapping
- 매핑
- Spring
- one-to-many
- 설정하기
- Security
- 설정
- Spring Security
- crud
- spring boot
- hibernate
- one-to-one
- RestTemplate