티스토리 뷰
Maven
- Java 프로젝트의 Build를 자동화해주는 Build Tool입니다.
- 자바 소스를 compile하고 package해서 deploy하는 일을 자동화 해주는 것입니다.
Build 과정
- 프로젝트 생성
- 라이브러리 설정
- 코드 작업
- 컴파일
- 테스트
- 패키지 만들기
- 배포
- 레포팅
- 이 Build 과정을 도와주는 도구가 Maven이라고 할 수 있습니다.
Build Tool = IntelliJ ?
- IntelliJ는 Build Tool이 아닌 IDE입니다.
- IDE는 통합 개발 환경(Integrated Development Enviroment)이며, 공통된 개발자 툴을 하나의 GUI로 결합하는 애플리케이션을 구축하기 위한 소프트웨어입니다.
- Build Tool은 프로젝트 생성, 라이브러리 설정만 담당한다면 IDE는 다른 도구들을 결합한 단위라고 할 수 있습니다.
Build Lifecycle
- Maven에서는 clean, build, site의 세 가지 Lifecycle을 제공합니다.
- 컴파일(compile), 테스트(test), 패키지(package), 배포(depooy)등의 과정은 빌드 Lifecycle에 속합니다.
- Maven은 모든 빌드 단위에 대한 Lifecycle이 예약되어 있어서 개발자가 임의로 변경 할 수 없습니다.
- 각 Lifecycle은 순서를 갖는 단계(phase)로 구성됩니다.
Phase
- BUild Lifecycle의 각각의 단계를 의미합니다.
- 특정 순선에 따라서 goal이 실행되도록 구조를 제공합니다.
- Phase 간에는 의존 관계가 있습니다.
- pacakge phase가 수행되기 위해서는 이전 phase가 순서대로 수행된 다음에 실행됩니다.
- 즉, 어떠한 phase를 실행하면 이전 phase들을 자동적으로 실행됩니다.
Phase와 Goal의 관계
- Maven에서 제공하는 모든 기능은 플러그인 기반으로 동작합니다.
- Maven에서 기본으로 제공하는 Phase를 실행하면 해당 Phase와 연결된 플러그인의 Goal이 실행됩니다.
- 각 Phase는 0개 이상의 goal과 바인드되어 있습니다.
POM.xml
- POM이란 Project Object Model이라고 해서 프로젝트의 다양한 정보를 처리하기 위한 객체 모델입니다.
- pom.xml은 기본적으로 최초 생성되는 기분구문과 추가적인 설정으로 생성되는 부분으로 나눌 수 있습니다.
이름 | 필수/선택 | 내용 |
---|---|---|
Artifact | 필수 사항 | 프로젝트의 기본적인 정보를 담고 있다. (배포방식 및 배포정보) |
properties | 선택 사항 | 자주 사용되는 정보를 변수처럼 만들어서 사용할 수 있다. |
dependencies | 필수 사항 | 의존성을 정의하는 부분으로, 라이브러리를 불러오는 부분이다. |
build | 필수 사항 | 빌드할 때 사용할 플러그인 목록을 기록한다. |
distributionManagemnet | 선택 사항 | artifact가 배포될 repository 정보와 설정 |
profiles | 선택 사항 | 여러 개의 profile을 가질 수 있고, 각기 다른 설정파일과 개발 환경을 구축할 때 사용한다. |
공부해야 할 것
- maven에 대해서는 나중에 더 깊게 공부해보도록 하자!
참고
'Sping Framework' 카테고리의 다른 글
webflux - RequestPredicate(interface) (0) | 2022.02.01 |
---|---|
[Spring boot] 테스트 코드 작성 (0) | 2020.02.14 |
[Spring boot] Spring boot 환경 설정하기 (0) | 2020.02.11 |
[Spring] 예제로 배우는 스프링 입문 [3] 프로젝트 과제 (0) | 2020.01.16 |
[Spring] 사전 준비 [1] - intellij git 연동 (0) | 2020.01.11 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 이팩티브 자바
- Olympiad
- Effective Java
- 알고리즘
- Spring Boot
- 디자인패턴
- programmers
- Algorithm
- Java
- 정규표현식
- MSA
- 프로그래머스
- kkoon9
- 객체지향
- 클린 코드
- node.js
- 코테
- BAEKJOON
- kotest
- AWS
- JPA
- 이펙티브 자바
- 테라폼
- 클린 아키텍처
- Kotlin
- Spring
- 디자인 패턴
- BOJ
- 백준
- C++
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함