티스토리 뷰

Maven

  • Java 프로젝트의 Build를 자동화해주는 Build Tool입니다.
  • 자바 소스를 compile하고 package해서 deploy하는 일을 자동화 해주는 것입니다.

Build 과정

  1. 프로젝트 생성
  2. 라이브러리 설정
  3. 코드 작업
  4. 컴파일
  5. 테스트
  6. 패키지 만들기
  7. 배포
  8. 레포팅
  • 이 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에 대해서는 나중에 더 깊게 공부해보도록 하자!

참고

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
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
글 보관함