최근 서버를 재 기동 및 프로세스 상태를 확인 하는 작업을 하면서, Maven Repository
에 대해서 잘 인지하지 못하여서 헤맸던 경험을 했다.
Maven Repository가 정확히 무슨 역할을 하고, 어떤 종류가 있는지를 이번 기회에 공부를 하여서, 다음에 같은 상황이 되었을 때 어떻게 트러블 슈팅을 할지 명확히 인지하고자 한다.
Maven Repository를 알기 위해서는 먼저 Maven에 대해서 알고 있을 필요가 있다.
Maven은 Apache 재단에서 개발하는 JAVA 기반 프로젝트의 라이프사이클 관리를 위한 빌드 도구이다.
이러한 Maven은 컴파일
과 빌드
를 동시에 수행, 테스트
를 병행하거나 서버 측 Deploy 자원을 관리할 수 있는 환경을 제공한다. 또한 라이브러리 관리
기능도 내포하고 있다.
settings.xm이나 pom.xml 파일에 프로젝트에 필요한 라이브러리 및 버젼을 적으면 Maven이 알아서 다운받고, 설치해주고, 경로까지 지정해준다.
application-core
pom.xml
킹나무위키 참조
Maven에서는 프로젝트를 빌드하거나 라이브러리를 다운로드할 때 의존성을 확인하기 위해 repository
를 사용하는데, 이 때 repository
는 3 종류가 있다.
Maven은 dependency(의존성)
및 packaging
한 프로젝트 결과물을 local의 특정 위치에 저장한다.
아래는 특정 위치를 별도로 지정하지 않았을 때의 기본 위치이다.
ex) 리눅스 & MAC = <홈 디렉토리>/.m2
ex) Windows = C:\Users\<유저 이름>.m2
.m2 디렉토리 하위에 dependency(의존성)
및 packaging
한 프로젝트 결과물들을 하위 디렉토리 구조로 생성하여 저장한다.
의존성을 다운로드 받을 위치의 repository이다.
위에서
settings.xm이나 pom.xml 파일에 프로젝트에 필요한 라이브러리 및 버젼을 적으면 Maven이 알아서 다운받고, 설치해주고, 경로까지 지정해준다.
라고 했던 말을 기억하는가.
이 때 Maven이 settings.xml이나 pom.xml에 기술된 라이브러리를 다운 받는 저장소라고 생각하면 된다.
특정 위치를 별도로 지정하지 않으면 아래와 같은 기본 위치를 가지고 있다.
http://repo.maven.apache.org/maven2
다수의 repository를 기술할 수 있으며, 자체적인 repository를 기술하기도 한다.
maven plugin을 다운로드 받을 수 있는 저장소의 위치를 기술한다.
이는 말 그대로 maven의 plugin을 다운로드 받을 수 있는 repository를 의미한다.
마찬가지로 다수의 repository를 기술할 수 있다.