Nexus Repository

황제낙엽 2020.05.20 14:12 조회 수 : 28

Nexus는 메이븐에서 사용할 수 있는 Repository다. 

외부에서 dependency를 수고를 덜고, local nexus(cache)로 사용함으로써 빠르게 라이브러리를 끌어올 수 있고, 

개발팀에서 사용하는 공용 라이브러리를 local nexus에 배포해서 팀간에 공유할 수 있다.

 

 

사설 리포지토리(Nexus Repository)가 필요한 이유

 

* 회사/단체의 화이트 리스트로 인해 외부 리포지토리에 접속하기 어려운 경우 프록시 역활.

* 특히나 비상시 외부 인터넷이 느리거나 리포지토리가 다운되는등 여러 상황에서도 빠르게 받을 수 있다.

* 현재 메이븐에 올라와 있지 않은 자료들은 효율적으로 관리하기 위하여.

* 한번 다운로드 받은 디펜던시는 로컬에 저장되지만 컴퓨터를 포멧하거나 동료가 시작할때 설정을 해야한다.

* 서버에도 동일한 설정들을 해줘야함으로 서버 구조가 복잡할 수록 잔업도 늘어난다.

* 예외 파일로 인한 설정이 줄어들어 전체적인 일관성이 증가한다.

 

 

Nexus Repository의 용도와 목적 그리고 종류

 

repository는 용도와 목적에 따라 몇 가지로 나눌 수 있다.

Nexus는 다수의 central repository들을 관리할 수 있으며 Proxy 개념을 통해 개발자들에게 보다 쉬운 repository 연동 편의성을 제공한다.

 

1. snapshots (snapshot은 같은 버전으로 여러 번 배포가 가능 (개발시에 자주 바뀌므로 ..) )빌드 등 수시로 릴리즈 되는 바이너리를 배포하는 장소

2. Release (release는 같은 버전으로 한번 밖에 배포할 수 없음)(다시 배포하려면 서버에서 지우고 배포))정식 릴리즈를 통해 배포되는 바이너리를 저장하는 장소

3. 3rd Party벤더들이 배포하는 바이너리를 저장해 놓은 저장소로 특정 솔루션들을 사용할 때, 딸려오는 라이브러리 등을 여기에 놓고 사용한다. 

4. Proxy Repository 프록시 저장소는 외부에 있는 메이븐 공개 저장소에 대한 프록시 역활을 하는 저장소 이다.Central 이라는 이름으로 메이븐 중앙 저장소가 이미 추가 되어 있으며, 대략적인 개념은 우측 그림 참고원격에 원본 repository가 있는 경우, Local에 캐쉬 용도로 사용한다.

5. Virtual Repository 넥서스에 이미 설정되어 있는 저장소에 대하여 다른 URL로 접근 할 수 있도록 지원하기 위한 논리적인 저장소 이다. Repository Group은 몇 개의 repository를 하나의 repository로 묶어서 단일 접근 URL를 제공한다.

 

* 저장소 그룹 :  넥서스에 설정한 저장소 그룹이다.    

프로젝트가 진행되면서 의존관계에 있는 라이브러리가 증가하면서, 외부 저장소도 증가하는데, 이 저장소 그룹에다 추가되는 외부 저장소를 추가하면

 메이븐의 설정파일 변경 없이 의존 관계를 확장할 수 있다.

번호 제목 글쓴이 날짜 조회 수
39 Ant 로 Java Application 실행시 Target 에 파라미터를 입력하여 Arguments 로 전달하여 실행시키기 file 황제낙엽 2012.06.05 2020
38 Jenkins Rest API 사용기 file 황제낙엽 2020.03.26 859
37 1900개가 넘는 java컴파일시 Ant의 설정 황제낙엽 2007.02.28 678
36 ANT에서 Classpath 설정시 순서 주의 황제낙엽 2010.07.10 364
35 Eclipse 의 auto compile 과 ANT의 compile 황제낙엽 2007.02.28 279
34 [Maven] 로컬 레파지터리에 사용자 jar 추가하기 file 황제낙엽 2010.04.20 217
33 Maven 툴을 이용한 효율적인 프로젝트 관리 방안 황제낙엽 2007.01.30 148
32 Eclipse에서 Ant+xdoclet 를 이용한 web.xml, struts-config.xml 자동생성 황제낙엽 2007.03.03 125
31 Ant로 UTF-8 엔코딩하기 (프로젝트 변환) 황제낙엽 2007.07.03 73
30 Ant에서 "${java.class.path}"이 의미하는바 황제낙엽 2010.07.10 56
29 Jenkins의 Restful API file 황제낙엽 2020.08.11 50
28 jenkins에서 tfs에 접속하여 브랜치와 변경집합으로 소스를 다운로드하는 예제 황제낙엽 2020.08.11 44
27 Jenkins Restful API로 Job 과 Build 정보 조회 황제낙엽 2020.09.02 43
26 ANT 를 이용한 RMI 컴파일 ( rmic 로 stub 생성하기 ) 황제낙엽 2010.05.26 43
25 Ant 의 사용 용례와 사용법 file 황제낙엽 2007.07.16 39
24 [Jenkins] Java Sample with Jenkins Restful API 황제낙엽 2020.08.12 38
23 ANT 작성예제 (build.xml , build.properties) file 황제낙엽 2007.05.16 36
22 Jenkins 백업 (Thinbackup) file 황제낙엽 2021.07.22 28
21 Jenkins+TFS 연동 예제 황제낙엽 2020.09.01 28
» Nexus Repository 황제낙엽 2020.05.20 28