본문 바로가기

infra

(AWS / Jenkins 환경) Nexus 3.0을 사용한 사설 저장소 구축하기


Nexus 3.0 이란?


다양한 형태의 사설 저장소를 만들고 운용할 수 있는 서비스를 제공합니다.
2.x 버전에서는 Maven 저장소로 주로 사용하였지만, 3.0 버전부터는 npm, docker 등 지원하는 포맷이 대폭 확장되었습니다. 2.x 버전과 호환이 보장되지 않기 때문에 2.x 버전에서 3.x버전으로 업그레이드를 고려한다면 관련 레퍼런스의 참고가 필요합니다.





Nexus Repository 종류
  • Proxy -> 외부의 메이븐 공개 저장소에대한 프록시 역할  : 원격에 원본 Repository가 있는 경우 Local 에 캐시용도로 사용
  • Release -> 같은버전을 한번만 배포 가능 : 정식 릴리즈를 통해 배포되는 바이너리를 저장
  • Snapshots -> 같은버전 여러번 배포 가능 : 빌드 등 수시로 릴리즈 되는 바이너리를 배포하는장소
  • Hosted -> 사내에서 사용하는 라이브러리 저장소
  • Group -> 여러 Repositry를 묶어서  단일접근 URL을 제공 : 그룹에 저장소를 나열하는 순서가 그룹 라이브러리 탐색의 우선순위가 됨



* 기본적으로 세팅 되어 있는 Repository 입니다.




설정과정

Step 1. (AWS) Jenkins 서버에서 Nexus 서버로 접근이 가능하도록 보안그룹을 설정합니다.




* Build는 Jenkins 서버에서 하기 때문입니다.



Step 2. Public Maven Repositroy가 아닌 사내 Nexus에서 라이브러리를 받도록 build.gradle 파일을수정합니다.

: mavenCentral 대신 회사가 관리하는 Nexus의 URL로 지정합니다. (Private IP)
* Url 지정시 앞에 http:// 를 추가하지 않으면 안됩니다.
* Local 환경에서 확인하려면 Public IP로 확인해야합니다.
(Jenkins에서만 Private IP 접근이 가능하도록 설정되어있음)


Step 3. Nexus에 사내 라이브러리 업로드
* 2가지 방법이 존재합니다.
A. Gradle에서 설정 
B. Jenkins에서 설정 

필자는 Gradle에서 설정하였습니다.  Jenkins에서 설정은 Jenkins Nexus Plugin을 설치하여야합니다.

 

  • build.gradle



: Nexus에 업로드하는 스크립트를 추가후 Gradle 탭에서 Upload Task를 실행하면 업로드가 완료됩니다.

  • Releases repository 업로드 확인


: Nexus Release Repository에 업로드가 된 것을 확인할 수 있습니다.

 


이상으로 포스팅을 마칩니다.
다음에 더 좋은 내용으로 만나요~



By RyanKim (Overnodes Devloper)