Nexus Repository

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

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를 제공한다.

 

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

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

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

번호 제목 글쓴이 날짜 조회 수
49 GitHub, SourceTree, Gradle, Eclipse 환경의 java project 생성하기 절차 황제낙엽 2025.08.26 252
48 eclipse 용 gradle web application project (no spring) 생성하기 황제낙엽 2025.05.04 317
47 라이브러리 개발 프로젝트에서 jar 로 build 후 파일을 특정 로컬 경로로 copy 하는 예제 황제낙엽 2025.02.07 294
46 [Gemini] gradle init 으로 프로젝트 생성하는 절차 내용 황제낙엽 2025.01.24 344
45 [ChatGPT] eclipse 의 web project 에서 gradle refresh 때마다 context root 가 초기화 황제낙엽 2024.11.14 375
44 Gretty, Jetty 에서 ssl 적용 황제낙엽 2024.11.12 414
43 [ChatAI] Gradle Wrapper의 버전을 업그레이드하는 절차 황제낙엽 2024.11.12 458
42 eclipse 용 gradle web application sample project (no spring) file 황제낙엽 2024.11.12 374
41 [phind] Gradle 프로젝트를 생성할 때 nested sub project 가 함께 생성되는 이유 황제낙엽 2024.11.12 362
40 IDE(IntelliJ, Android Studio, Eclipse) 에서 build.gradle 에 dependencies 추가후 의존 라이브러리 갱신하기 황제낙엽 2024.10.30 379
39 [POST, 2021.06.28] Gradle을 이용해 Web 어플리케이션을 만들고 빌드하고 실행하기 file 황제낙엽 2023.12.30 330
38 build.gradle 의 dependencies 황제낙엽 2023.12.29 327
37 error: unmappable character 황제낙엽 2023.12.29 326
36 Task :compileJava FAILED 황제낙엽 2023.12.29 349
35 사용자 라이브러리 파일(*.jar) 를 의존성에 추가하는 방법 황제낙엽 2023.12.28 361
34 Windows 에 Gradle 설치 황제낙엽 2023.12.23 347
33 Eclipse, Gradle 프로젝트 생성, Dynamic Web Project 로 변경 황제낙엽 2023.12.23 362
32 Eclipse 에서 Gradle Project 를 WAR 로 배포하기 황제낙엽 2023.12.01 538
31 Eclipse 에서 생성한 Gradle Project 를 리프레쉬 했을때 주의할 점 황제낙엽 2023.11.30 1532
30 Gradle 기본 다지기 1편 file 황제낙엽 2023.11.16 244