Nexus Repository Manager는 아티팩트 관리(Artifact Management)에 사용되는 매우 강력한 도구입니다. 일반적으로 기업 환경에서는 Linux 또는 Docker 컨테이너를 통해 배포하는 것이 가장 안정적이지만, Windows 11 환경에서도 충분히 구축할 수 있습니다.
아래는 Windows 11에 Nexus Repository Manager를 설치하고 레지스트리를 구축하는 단계별 상세 가이드입니다.
⚠️ 사전 경고 및 준비물 (Prerequisites)
Nexus는 자바(Java) 환경에서 작동합니다. 따라서 가장 먼저 **JDK(Java Development Kit)**를 설치하고 환경 변수를 설정하는 것이 핵심입니다.
📂 필요한 준비물
- JDK 설치: Nexus가 요구하는 버전의 Java Development Kit (예: OpenJDK 17 또는 21 LTS 버전)을 다운로드 및 설치합니다.
- 환경 변수 설정: 시스템의
JAVA_HOME환경 변수를 JDK가 설치된 경로로 설정합니다. - Nexus 다운로드: Sonatype 공식 웹사이트에서 사용하려는 Nexus Repository Manager 버전을 다운로드합니다 (ZIP 파일 형태).
🚀 1단계: 개발 환경 설정 (Environment Setup)
1. JDK 설치 및 환경 변수 설정
- JDK 설치: 다운로드한 JDK를 원하는 위치에 압축 해제합니다 (예:
C:\Program Files\Java\jdk-21). - 환경 변수 설정:
- Windows 검색창에 “시스템 환경 변수 편집”을 검색하여 들어갑니다.
- 시스템 변수(System Variables) 영역에서
Path변수를 찾거나, 새 변수를 만듭니다. JAVA_HOME변수를 생성하고 값에 JDK의 루트 경로를 지정합니다. (예:C:\Program Files\Java\jdk-21)Path변수에%JAVA_HOME%\bin경로를 추가하여 시스템이 Java 실행 파일을 인식할 수 있도록 합니다.
2. Nexus 파일 배치
- 다운로드한 Nexus ZIP 파일을 시스템 드라이브의 안정적인 위치에 압축 해제합니다.
- 추천 경로:
C:\nexus
- 추천 경로:
- 이 폴더가 향후 Nexus의 루트 디렉토리가 됩니다.
⚙️ 2단계: Nexus 서버 초기 실행 및 구동 (Initial Startup)
Nexus를 처음 실행할 때는 CLI(Command Line Interface)를 통해 수동으로 실행하여 문제가 없는지 확인하는 것이 좋습니다.
1. 명령 프롬프트 열기 (CMD)
- 시작 메뉴에서
CMD를 검색하여 관리자 권한으로 실행합니다. - Nexus 폴더로 이동합니다. (예시:
cd C:\nexus\nexus-*.jar)
2. Nexus 실행
Nexus는 보통 실행 가능한 JAR 파일을 제공합니다. 다음 명령어를 사용하여 Nexus를 실행합니다.
java -jar nexus-*.jar
java -jar nexus-*.jar
💡 예상되는 결과: 서버가 시작되면서 초기화 메시지와 함께 로그가 출력됩니다. 잠시 기다리면 서버가 준비되었다는 메시지(예: “Nexus started successfully”)와 함께 포트(기본 8081)가 활성화됩니다.
3. 웹 UI 접속 확인
- 웹 브라우저를 열고 다음 주소로 접속합니다.
http://localhost:8081 - Nexus의 로컬 인스턴스가 성공적으로 실행되었다면, 초기 설정 화면 또는 로그인 페이지가 나타납니다.
🛡️ 3단계: 서버 구동 방식을 서비스화 (Service Setup)
개발/테스트 목적으로는 위와 같이 수동으로 실행해도 되지만, 서버로 운영할 목적이라면 Windows Service로 등록하여 시스템 부팅 시 자동으로 실행되게 하는 것이 필수입니다.
(💡 참고: 이 과정은 복잡할 수 있으므로, Nexus 공식 가이드나 서비스 런처 도구(예: Apache Procrun 등)의 도움을 받는 것을 추천합니다.)
간단한 팁: 서비스 등록이 어렵다면, CMD 창을 열고 로그인 후 해당 CMD 창을 최소화 상태로 켜두는 것이 임시 방편입니다.
🧪 4단계: 레포지토리 구축 및 설정 (Repository Setup)
웹 UI로 접속하여 관리자 계정으로 로그인한 후, 실제 프로젝트에서 사용할 레포지토리들을 구축해야 합니다.
1. 기본 레포지토리 구조 이해
Nexus는 아티팩트(라이브러리 파일)의 종류에 따라 레포지토리를 분리해야 합니다.
- Hosted Repository: 개발자가 실제로 아티팩트(JAR, WAR 등)를 업로드하는 공간.
- Proxy Repository: 외부 원격 레지스트리(예: Maven Central, npmjs.com)에서 아티팩트를 가져와 캐싱하는 공간.
- Group Repository: 여러 개의 Hosted/Proxy 레포지토리를 묶어서 사용하는 통합 게이트웨이 역할.
2. 새로운 레포지토리 생성하기
- Nexus 웹 UI에서 왼쪽 메뉴의
Repositories탭을 클릭합니다. Create repository버튼을 클릭합니다.- 레포지토리 타입 선택: 프로젝트에 맞는 타입을 선택합니다.
🔹 예시 1: Maven 레포지토리 생성 (가장 일반적)
- 타입:
maven2 - 이름:
my-company-maven - 설정: 레포지토리 ID를 지정하고 저장합니다.
🔹 예시 2: npm 레포지토리 생성
- 타입:
npm - 이름:
my-company-npm - 설정: 저장합니다.
3. Proxy 레포지토리 설정 (외부 연결)
외부 라이브러리(예: Spring Boot의 라이브러리)를 다운로드하려면 Proxy가 필요합니다.
Repositories탭에서 **Create repository**를 클릭합니다.- 타입:
proxy를 선택합니다. - 원격 URL(Remote URL) 입력: 캐싱할 외부 레지스트리의 주소를 입력합니다. (예:
https://repo.maven.apache.org/maven2/) - 저장: Proxy가 생성됩니다.
4. Group Repository 설정 (최종 단계)

최종적으로 모든 것이 잘 작동하는지 테스트하고 외부 시스템(CI/CD 도구, 개발자 IDE 등)에서 이 주소만 바라보게 하려면 Group Repository를 만듭니다.
Repositories탭에서 **Create repository**를 클릭합니다.- 타입:
group을 선택합니다. - 원격 레포지토리 추가: 앞서 만든 모든 Hosted, Proxy 레포지토리들을 이 Group 레포지토리 내부로 추가합니다.
🌟 요약 체크리스트
| 단계 | 항목 | 설명 | 완료 여부 |
|---|---|---|---|
| 준비 | JDK 설치 | 시스템에 Java 개발 키트가 설치되어 있는지 확인합니다. | $\square$ |
| 준비 | 환경 변수 | JAVA_HOME 변수가 올바르게 설정되었는지 확인합니다. |
$\square$ |
| 설치 | Nexus 배포 | ZIP 파일을 압축 해제하고 실행 준비를 마칩니다. | $\square$ |
| 실행 | 서버 구동 | CMD를 통해 java -jar nexus-*.jar를 실행하여 8081 포트 접속을 테스트합니다. |
$\square$ |
| 관리 | Hosted Repo | 프로젝트 아티팩트를 올릴 Hosted 레포지토리를 생성합니다. | $\square$ |
| 관리 | Proxy Repo | 외부 라이브러리를 캐싱할 Proxy 레포지토리를 생성합니다. | $\square$ |
| 완료 | Group Repo | 모든 레포지토리를 묶는 Group 레포지토리를 생성합니다. | $\square$ |
추가참고 : https://bbaek-gwi-story.tistory.com/33