출처 : https://youtu.be/3Jp9kGDb01g
프로젝트에서 필요한 xml, properties, jar 파일들을 자동으로 인식하여 빌드해주는 도구
소스코드를 컴파일, 테스트, 정적분석 등을 하여 실행가능한 앱으로 빌드해줌
프로젝트 정보 관리, 테스트 빌드, 배포 등의 작업을 진행해줌
외부 라이브러리를 참조하여 자동으로 다운로드 및 업데이트 관리해줌
자바의 대표적인 빌드 도구 : Ant, Maven, Gradle
Maven을 사용해야 하는 이유
- 기존에 사용하던 Ant는 빌드의 기능만 가지고 있음
- 자동으로 라이브러리를 관리해주는 기능이 추가된 Maven을 사용
- 다운받아 사용하던 라이브러리에 변동사항이 있으면 자동으로 업데이트하여 적용됨
ant : XML 기반의 빌드 스크립트
자유로운 빌드 단위 지정
간단하고 사용하기 쉬움
대규모 프로젝트에서 복잡해지는 경향이 있음
라이프 사이클이 없음
Maven : XML기반의 빌드 스크립트
라이프 사이클 도임
pom.xml로 편하게 Dependency 관리
modelVersion: maven의 버전
groupId : 프로젝트 그룹 id를 뜻하며, 일반적으로 대표하는 사이트 도메인을 역순으로 적어 사용
(ex : thinkgroup.studio -> studio.thinkgroup)
artifactId: groupId외에 다른 프로젝트와는 구분될 수 있는 프로젝트의 id를 작성
version : 프로젝트의 버전을 의미하며 개발 단계에 따라 구분하여 작성
name : 프로젝트의 이름
description : 해당 프로젝트의 간략한 설명을 작성
properties : pom.xml 파일 내에서 빈번하게 사용되는 중복 상수를 정의하는 영역
해당 영역의 상수를 사용하기 위해서는 ${태그명} 의 형태로 사용하면 됨
dependencies
: 해당 프로젝트에서 의존성을 가지고 사용하는 라이브러리를 정의하는 영역
각 라이브러리마다<dependency>
태그를 사용해서 구분
build : 프로젝트 빌드와 관련된 정보를 설정하는 영역
repository : 라이브러리가 저장된 위치 등 설정
mavenCentral : 기본 Maven Repository
dependencies : 라이브러리 사용을 위한 의존성 설정
대표 RepositorySite
https://mvnrepository.com/