Java/Maven

Maven repository 설정

범데이 2022. 8. 3. 23:26
728x90

1. 개요

maven을 이용하여 원하는 라이브러리를 손쉽게 프로젝트에 추가할 수 있다.

이 때, 라이브러리가 저장된 곳을 maven repository라고 한다.

 

1) maven local repository의 기본 경로

  • windows : c:\Users\사용자계정\.m2\repository
  • linux : /home/사용자계정/.m2\repository

 

 

2) maven repository 경로 수정 방법

maven/conf 경로 안에 settings.xml 파일을 이용하여 maven repository 경로 수정이 가능하다.

<localRepository></localRepository> 사이에 경로를 추가하면 된다.

 

(덧붙여 위의 설정파일을 보면 Default 경로가 ${user.home}/.m2/repository임을 알수 있다.)

 

3) 서버 메이븐 폴더 위치 찾는 방법

  • 메이븐 정보 확인 : mvn -v
  • 메이븐 경로 설정 파일 : ${MAVEN_HOME}/conf/settings.xml

 

4) 원격 레포지토리 설정

profile/repositories의 설정은 Maven이 빌드 시스템의 로컬 레포지토리를 채우는데 사용하는 프로젝트의 원격 컬렉션이다. Maven이 이를 플러그인 및 종속성이라고 부르는 것은 이 로컬 저장소에서 가져온 것이다. 다른 원격 저장소에는 다른 프로젝트가 포함될 수 있으며 활성 프로필에서 일치하는 릴리스 또는 스냅샷 아티팩트를 검색할 수 있다.

releases, snapshots: 다음은 각 유형의 정책이다. 아티팩트, 릴리스 또는 스냅샷이 있다. 이 두 집합으로, POM은 다음을 갖는다. 각 유형의 정책을 다른 유형에 관계없이 변경할 수 있는 권한 단일 저장소 내에 있다. 예를 들어, 개발을 목적으로 스냅샷 다운로드만 활성화하기로 결정할 수 있다.

 

enabled: 이 리포지토리가 해당 유형(releases 또는 snapshots)인지에 따라 활성화 여부(true or false)를 설정할 수 있다.

 

updatePolicy: 이 요소는 업데이트 발생 빈도를 지정한다. Maven은 로컬 POM의 타임스탬프(레포지토리의 maven-metadata 파일에 저장됨)를 원격지와 비교한다. 선택 사항은 always, daily(기본값), interval:X(여기서 X는 분 단위의 정수) 또는 never 이다.

 

checksumPolicy: Maven은 저장소에 파일을 배포할 때 해당 체크섬 파일도 배포한다. 옵션은 누락되거나 잘못된 체크섬에 대해 ignore, fail, warn로 설정할 수 있다.

 

layout: 위의 리포지토리 설명에서 모두 공통 레이아웃을 따른다고 언급했다. 이것은 대부분 맞다. Maven 2에는 저장소에 대한 기본 레이아웃이 있다. 그러나 Maven 1.x는 레이아웃이 다르다. 이 요소를 사용하여 default or legacy로 지정한다.

 

Plugin Repositories 레포지토리에는 두 가지 주요 유형의 아티팩트가 있다. 첫 번째는 다른 아티팩트의 종속성으로 사용되는 아티팩트이다. 이들은 central에 있는 대부분의 아티팩트이다. 다른 유형의 아티팩트는 플러그인이다. Maven 플러그인은 그 자체로 특별한 유형의 아티팩트이다. 이 때문에 플러그인 리포지토리가 다른 리포지토리와 분리될 수 있다. 어쨌든 pluginRepositories요소의 블록의 구조는 repositories 요소와 유사하다. pluginRepository요소는 각각 Maven이 새 플러그인을 찾을 수 있는 원격 위치를 지정한다.

 


#References

https://maven.apache.org/settings.html#Repositories

https://ajdahrdl.tistory.com/89

반응형

'Java > Maven' 카테고리의 다른 글

[Maven] mvn clean install  (0) 2022.09.22
Maven에 대해  (0) 2022.08.03