Spring

Apache Maven 란? (POM)

서윤-정 2023. 8. 18. 11:25

 

 

 

 

 

✔️ Apache Maven

소프트웨어 프로젝트의 빌드, 배포, 의존성 관리를 자동화하기 위한 도구이다.

프로젝트의 라이프사이클을 관리하며,

프로젝트의 빌드 및 배포 과정을 단순화하고 효율적으로 수행할 수 있도록 지원한다.

Maven은 XML 기반의 프로젝트 설정 파일과 커맨드 라인 도구를 제공하여

사용자가 프로젝트를 쉽게 관리할 수 있도록 한다.

자바요 프로젝트 관리 도구로, project object model(POM) XML 문서를 통해

해당 프로젝트의 버전 정보 및 라이브러리 정보들을 통합하여 관리하는 도구로

Apache License 2.0으로 배포되는 오픈 소스 소프트웨어다.

 

Maven의 주요 특징과 기능은 다음과 같다.

 

1. 프로젝트 라이프사이클 관리

Maven은 미리 정의된 빌드 라이프사이클을 제공하여 프로젝트의 빌드, 테스트, 패키징, 배포 등 다양한 

단계를 자동으로 수행할 수 있게 한다.

 

2. 의존성 관리

Maven은 프로젝트가 다른 라이브러리나 외부 모듈에 의존할 때, 해당 의존성을 자동으로 다운로드하고 관리한다.

이를 통해 라이브러리 관리를 간편하게 할 수 있다.

 

3. 표준화된 디렉토리 구조

Maven은 표준화된 디렉토리 구조를 사용하여 프로젝트의 소스 코드, 리소스, 테스트 코드 등을 관리한다.

이를 통해 개발자들 간의 일관된 프로젝트 구조를 유지할 수 있다.

 

4. 중앙 저장소와 배포

Maven은 라이브러리와 프로젝트 아티팩트를 중앙 저장소에 업로드하고 관리할 수 있다.

다른 개발자나 프로젝트에서 이러한 아티팩트를 사용할 수 있다.

 

5. 플러그인 시스템

Maven은 다양한 플러그인을 제공하며, 사용자 정의 플러그인을 개발하여 빌드 과정을 확장하거나

커스터마이징할 수 있다.

 

6. 멀티 모듈 프로젝트 지원

Maven은 여러 개의 모듈로 구성된 멀티 모듈 프로젝트를 쉽게 관리할 수 있도록 지원한다.

 

7. 프로파일(Profile)

프로파일을 사용하여 다양한 환경에 따른 설정을 관리하고 활성화할 수 있다.

 

 

 

 

 

 

 

 

 

✔️ POM

Apache Maven 프로젝트에서 사용되는 "Project Object Model"의 약자이다.

pom.xml 파일은 Maven 프로젝트의 설정과 관련 정보를 담고 있는 XML 파일이다.

이 파일은 프로젝트의 빌드, 의존성 관리, 플러그인 설정, 프로젝트 정보 등을 정의하는데 사용된다.

 

pom.xml 파일은 Maven의 핵심이며, 다음과 같은 주요 정보와 설정을 포함할 수 있다.

 

1. 프로젝트 정보

프로젝트의 이름, 버전, 설명, 개발자 정보 등을 포함한다.

 

2. 의존성(Dependency)

프로젝트가 사용하는 외부 라이브러리나 모듈의 정보를 정의한다.

각 의존성은 그룹ID, 아티팩트ID, 버전으로 식별된다.

 

3. 플러그인(Plugin)

빌드나 기타 작업을 확장하기 위해 사용되는 플러그인의 설정 정보를 포함한다.

 

4. 빌드 설정

프로젝트의 빌드 과정을 정의한다.

컴파일 옵션, 출력 디렉토리, 테스트 설정 등을 포함할 수 있다.

 

5. 프로파일(Profile)

다양한 환경에서 다른 설정을 사용할 때 사용한다.

특정 환경에 따른 의존성, 플러그인, 속성 등을 정의할 수 있다.

 

6. 리포지토리(Repository)

의존성 라이브러리나 프로젝트 아티팩트를 저장하고 검색하는 데 사용되는 리포지토리의 정보를 포함한다.

 

pom.xml 파일은 Maven이 프로젝트를 빌드하고 관리하는 데 필요한 모든 정보를 제공하며, 

Maven은 이 파일의 설정을 기반으로 프로젝트를 자동으로 빌드하고 관리한다.

이를 통해 개발자는 프로젝트의 의존성, 빌드 설정, 테스트 설정 등을 중앙에서 관리하고

일관된 방식으로 프로젝트를 구성할 수 있다.