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 |
댓글