아파치 메이븐(Apache Maven)은 자바 기반 프로젝트의 라이프사이클(Life Cycle)관리를 위한 빌드 도구입니다.
메이븐은 프레임워크 중 하나입니다. 따라서 정해진 순서에 따라 동작하며, 이러한 빌드 순서를 라이프사이클이라 합니다.
각 단계 - Phase(기능)에 대해 알아보면
최종 빌드 순서는 [Compile] -> [test] -> [package]
각 단계(Phase)는 의존관계를 가지고 있어 이전 Phase가 수행되어야 수행가능합니다. 즉, 모든 빌드 단계는 이전 단계가 성공적으로 실행되었을 때 실행된다는 것이 의존(Dependency)입니다.
이 자바 빌드 도구인 Maven의 특징, 장점, 단점을 알아봅시다.
settings.xml : 메이븐을 빌드할 떄 의존관계에 있는 라이브러리, 플러그인을 위치 설정할 수 있음.
▶︎ 메이븐 빌드 툴과 관련한 설정파일
▶︎ MAVEN_HOME/conf 디렉토리에 위치(메이븐 설치 시 기본 제공)
POM(Project Object Model) : 프로젝트 객체 모델
▶︎ POM은 pom.xml을 뜻하며, 메이븐을 이용하는 프로젝트의 root에 존재하는 파일
▶︎ 프로젝트별 1개, 모든 설정, 의존성 등을 알 수 있다.
예시
<?xml version="1.0" encoding="UTF-8"?> <project>
<!-- model version is always 4.0.0 for Maven 2.x POMs -->
<modelVersion>4.0.0</modelVersion>
<!-- project coordinates, i.e. a group of values which
uniquely identify this project -->
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1.0</version>
<!-- library dependencies -->
<dependencies>
<dependency>
<!-- coordinates of the required library -->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<!-- this dependency is only used for running and compiling tests -->
<scope>test</scope>
</dependency>
</dependencies>
</project>
https://namu.wiki/w/Maven
https://blog.naver.com/dktmrorl/222131777444
https://ko.wikipedia.org/wiki/아파치_메이븐