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)
'infra' 카테고리의 다른 글
좌충우돌 스타트업의 CI/CD 적용기 1탄 (0) | 2018.11.14 |
---|---|
도커와 AWS 로 wordpress blog 구축 (0) | 2018.11.02 |
Harbot Private Docker Repository 설치 (0) | 2018.11.02 |