Maven, Gradle
은 모두 빌드 관리 도구.class
로 변환 resource를 .class
가 참조할 수 있는 적절한 위치로 옮기고 META-INF와 MANIFAST.MF 들을 하나로 압축하는 과정 의미Maven이란
Maven 특징
clean - validate - compile - test - package - verify - install - site - deploy
라이프 사이클 가짐
clean
: 빌드 시 생성되어있던 파일 삭제validate
: 프로젝트가 올바른지 확인하고 필요한 모든 정보를 사용할 수 있는지 확인하는 단계compile
: 프로젝트 소스코드를 컴파일 하는 단계test
: 단위 테스트를 수행하는 단계, 테스트 실패 시 빌드 실패로 처리되며 스킵이 가능package
: 실제 컴파일된 소스 코드와 리소스들을 jar/war 파일형태의 배포를 위한 패키지로 만듦verify
: 통합 테스트 결과에 대한 검사를 실행하여 품질 기준을 충족하는지 확인site
: 프로젝트 문서와 사이트 작성/생성하는 단계deploy
: 만들어진 package를 원격 저장소에 release하는 단계pom.xml
에 정의하며 이를 프로젝트 모델링이라고 함
pom
은 Project Object Model
의 약자로 프로젝트 정보, 빌드 환경, pom 연관 정보(의존 프로젝트, 모듈, 상위 프로젝트 등)를 담고 있음가독성이 좋음
재사용 용이
: 설정 주입 방식(Configuration Injection)을 사용하므로 재사용에 용이구조적인 장점
: Build Script를 Groovy 기반의 DSL(Domail Specific Language)를 사용하여 코드로서 설정 정보를 구성하므로 구조적인 장점이 있음편리함
: 추가 설치없임 Gradlle Wrapper를 이용하여 빌드를 지원멀티 프로젝트
: Gradle은 멀티 프로젝트 빌드를 지원하기 위해 설계된 빌드 관리 도구지원
: Maven을 완전 지원