본문 바로가기
Infra

(AWS/Jenkins/Maven/Gradle) Nexus 3.0을 활용하여 사설 저장소 구축하기

by Developer RyanKim 2018. 7. 17.

  6





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)


댓글