본문 바로가기
IT Knowledge/빌드도구

Maven 의 이해

by Seok. 2023. 8. 14.
반응형

Maven 이란

Apache Maven 소프트웨어 프로젝트 관리 이해도구 입니다.

기존에는 Apache Ant 많이 쓰였지만, 스크립트 작성도 많고, 라이브러리 의존 관리가 되지 않기 때문에 Maven으로 대체되었습니다.

Maven 프로젝트 개체 모델(POM) 개념을 기반으로 중앙 정보에서 프로젝트의 빌드, 보고 문서를 관리할 있습니다.

(아파치 재단의 오픈 소스 소프트웨어)

 

Maven 목표

Maven 주요 목표는 개발자가 최단 시간내에 개발 작업의 전체 상태를 이해할 있도록 하는 것입니다.

-. 빌드 프로세스를 쉽게 만들기

-. 균일한 빌드 시스템 제공

 : 프로젝트 개체 모델(POM) 플러그인 세트를 사용하여 프로젝트를 빌드. 하나의 Maven 익힌다면, 모든 Maven 빌드가 어떻게 되는지 있게 됩니다.

-. 양질의 프로젝트 정보 제공

 : 상호 참조 소스

 : 프로젝트에서 관리하는 메일링 리스트

 : 프로젝트에서 사용하는 의존성

 : 적용 범위를 포함한 단위 테스트 보고서

 

Pom.xml 이란?

프로젝트 개체 모델(POM - pom.xml) Maven 빌드할때 필요한 정보를 작성한다.

Maven 라이브러리, 프레임워크 등을 모두 이곳에서 관리함으로써, 프로젝트의 내용을 확인 있다.

-. Build : 여러 플러그인들의 실행에 관련된 설정들을 지정한다.

-. Plugins : groupid, artifactid, version 정보로 의존성이 있는 플러그인 정보를 작성.

-. Configuration : 플러그인이 실행될때 실행옵션을 설정한다.

-. Execution : 해당 플러그인이 언제, 어떤 configuration으로 실행될지에 대한 내용

 

Local Repository

 : 로컬PC or 서버에 캐싱

 : 기본경로(Linux) - /home/<UserName>/.m2

 

Remote Repository

 : pom.xml 명시적으로 작성되어 있는 원격저장소(모든 프로젝트 마다 적용되도록 하려면, settings.xml파일에 설정)

 : 해당 라이브러리 작동에 필요한 라이브러리들까지 자동 다운로드

<repositories>

    <repository>

        <id>central</id>

        <releases>

            <enabled>true</enabled>

        </releases>

        <snapshots>

            <enabled>false</enabled>

        </snapshots>

        <url> http://remote_repos.com/maven-repos</url>

    </repository>

</repositories>

 

Central Repository

로컬 저장소에 artifacts 없고, 원격저장소 설정이 없다면, 중앙 저장소 아티팩트를 가져온다.

 중앙저장소(Central Repository)를 통한 자동 의존성 관리(아파치 재단에서 운영한다)를 한다.

중앙 저장소는 라이브러리를 공유하는 파일 서버이고 각 회사만의 중앙 저장소를 구축할 수도 있다.

반응형

'IT Knowledge > 빌드도구' 카테고리의 다른 글

Jib개요 및 사용법(with maven, gradle)  (6) 2023.08.14
Gradle install 방법  (2) 2023.08.14
Gradle의 이해  (0) 2023.08.14
Maven Wrapper의 이해와 사용법  (0) 2023.08.14
Gradle increase read timeout 조치방안  (4) 2022.06.17

댓글