폐쇄망에서 메이븐 의존성 라이브러리를 다운받을 수 없을 때 Nexus를 설치해서 사용해야 한다.

요즘은 docker가 많이 활성화되어서 설치 자체는 어렵지 않지만 라이브러리는 일일이 수동으로 올려야 하는 경우가 많다.

라이브러리를 일일이 다운받아서 업로드 하기는 어려우므로 외부에서 로컬레파지토리를 만들어 와 이를 대량으로 업로드 하는 방법을 가이드 한다.

(넥서스에 jar파일을 올리는 방법은 단건으로 GUI를 이용해서 올리는 방법, REST API를 이용)

0. 제약사항

  • 넥서스는 미리 설치되어 있어야 한다.

1. 제공파일

[ nexus_bulk_upload.sh]

#!/bin/bash

files="./files.out"

username="admin"
password="admin123"
nexusurl="http://{넥서스IP}:{넥서스Port}/repository/nexus/"

find . -name '*.*' -type f | cut -c 3- | grep "/" > $files

while read i; do
  echo "upload $i to $nexusurl"
  curl -v -u $username:$password --upload-file $i "$nexusurl$i"
done <$files
  • 로컬레파지토리 최상단에서 해당 파일을 생성하고 수행하면 경로에 따라 파일 목록을 텍스트 형태로 생성하고 Nexus REST API를 통해 업로드 하는 형태다.

2. 사용방법

해당 sh 파일은 로컬 메이븐 레파지토리가 이미 존재한다는 가정하에 시작한다.

로컬 메이븐 레파지토리 디렉토리로 이동한다.

shift + 마우스 우측 버튼 → git bash를 열고 nexus_bulk_upload.sh 파일을 수행한다.

username 과 password는 넥서스 로그인 아이디와 패스워드이다.

+ Recent posts