Nexus 설치 및 Maven 연동
Nexus는 maven에서 사용할 수 있는 가장 널리 사용되는 무료 repository 중의 하나이다. www.sonatype.com 에서 다운로드 받아서 설치할 수 있다.
Local에 nexus를 설치하게 되면, 외부로 부터 dependency를 끌어 오는 수고를 덜고, local nexus를 proxy (cache)로 사용함으로써 빠르게 라이브러리들을 끌어 올 수 도 있고, 반대로 개발팀내에서 사용하는 공통 라이브러리들을 local nexus에 배포해서 팀간에 공유할 수 있다.
또한 사용자 계정 지정을 통해서 repository에 대한 접근 정책을 정의할 수 도 있다.
Nexus는 repository의 용도와 목적에 따라서 몇 가지로 나눌 수 있는데, 대표적으로 다음과 같은 종류 들이 있다.
① Snapshots : 빌드등 수시로 릴리즈 되는 바이너리를 배포 하는 장소
② Releases : 정식 릴리즈를 통해서 배포되는 바이너리를 저장하는 저장소
③ 3rd party : 벤더등에서 배포하는 (Oracle,IBM등) 바이너리를 저장해놓는 장소로 특정 솔루션등을 사용할때, 딸려 오는 라이브러리등을 여기에 놓고 사용한다
④ Proxy Repository : 원격에 원본 repository가 있는 경우, Local에 캐쉬 용도로 사용한다.
⑤ Virtual Repository : Repository Group은 몇 개의 repository를 하나의 repository로 묶어서 단일 접근 URL을 제공한다.
여기서는 가장 널리 사용하는 local repository로 설정 하는 시나리오와 함께, 외부 repository에 대한 proxy 시나리오로 사용하는 설정을 소개한다.
설치
http://www.sonatype.com 에서 nexus 무료 버전을 다운로드 받아서 설치한다. 초기 디폴트 로그인 계정과 비밀번호는 "admin/admin123"이다.
Public Repositories라는 repository 그룹에 local repository (Releases와 Snapshots, 3rd party) 와 proxy repository를 포함시킨다.
다음으로 Proxy Repository는 Remote Repository의 내용들에 대한 라이브러리 목록(Index)를 Local에 Caching할 수 있도록 되어 있다. 이렇게 하면, nexus의 proxy repository에 실제 바이너리가 내려와 있지 않더라도 목록이 미리 내려와 있기 때문에, nexus의 search 기능을 통해서 검색이 가능하다.
"Maven Central Repository"인 "Central" repository 에 설정을 해보자 "Central repository"를 선택한 후, 메뉴에서 "Download Remote Indexes" 라는 Option을 "True"로 변경한다. 다음 SAVE 버튼으로 저장한 후, 상단 테이블 메뉴에서 "Central" repository를 선택한 후 오른쪽 버튼을 눌러서 팝업 메뉴에서 "update index"를 실행하면, 원격 maven repository에서 라이브러리 목록을 읽어서 업데이트가 된다.
업데이트가 끝나면 "Browse Index" 메뉴에서 라이브러리 목록이 새롭게 업데이트 되어 있는 것을 확인할 수 있다.
Maven에서 local nexus를 Proxy (Cache) repository로 설정하기
Nexus 설정이 끝났으면 다음으로 maven에 nexus를 rmirroring repository 설정해보자.
$MAVEN_HOME/.m2/setting.xml
파일에서 <mirrors> section에 아래 내용을 추가하자
<mirror> <id>nexus</id> <mirrorOf>*</mirrorOf> <name>Local nexus repository.</name> <url>http://localhost:8081/nexus/content/groups/public/</url> </mirror> </mirrors> |
설정이 끝난후, maven 빌드를 수행하면 maven script가 원격지가 아닌 local에 있는 nexus repository를 통해서 라이브러리를 다운로드 하는 것을 확인할 수 있다.
또한 nexus console을 통해서 "Browse Storage" 메뉴를 통해서 "Central" repository 의 storage 를 보면 빌드에 사용되었던 모든 라이브러리들이 local nexus에 다운로드 받아져 있음을 확인할 수 있다.
- nexus 고급 기능 소개 - http://bcho.tistory.com/775
'ALM > Build Automation (빌드 자동화)' 카테고리의 다른 글
gitHub와 Jenkins 연결하기 (0) | 2018.03.01 |
---|---|
Bazel 빌드 툴에 대해서. (0) | 2017.02.16 |
maven repository인 nexus pro에 대한 고급 기능 소개 (0) | 2013.07.31 |
maven으로 환경별도 다르게 패키징 하기 & RPM 패키징 #2/2 (1) | 2013.04.15 |
maven으로 REST 개발 환경 만들기(Jersey+Spring+MyBatis) #1/2 (2) | 2013.04.12 |