기업 내부망이나 보안 상의 이유로 인터넷 접속이 제한된 환경에서도 개발에 필요한 오픈소스 라이브러리를 활용해야 하는 경우가 많습니다. 이럴 때 Sonatype Nexus Repository Manager를 이용해 외부 라이브러리를 내부망으로 안전하게 가져오는 3가지 주요 방법을 소개합니다.
설치에 관해 궁금하시면 이전 글인 [이 글]을 참고 하시기 바랍니다.
1. 프록시 리파지토리 등록 (인터넷 가능 환경에서 미리 캐시)
Nexus는 외부 저장소를 프록시(Proxy) 리파지토리로 설정하여 필요한 라이브러리를 자동으로 가져오고 로컬에 캐시할 수 있습니다. 인터넷이 가능한 세팅 초기 단계에서 이 방법을 활용하면 수많은 라이브러리를 자동으로 확보할 수 있습니다.
설정 방법
- Nexus Repository Manager 접속
- Repositories > Create Repository
- maven2(proxy) 선택
- Remote Storage URL 입력:
https://repo.maven.apache.org/maven2/ - 저장소 ID 입력: maven-central-proxy
- 저장
이후에는 Nexus가 외부에서 받아온 라이브러리를 내부망에서 캐시 형태로 지속 활용할 수 있습니다.
2. Nexus UI를 통한 수동 업로드 (인터넷 불가 환경에서 소량 업로드에 적합)
직접 Nexus의 웹 UI를 통해 .jar 파일을 업로드하는 방식입니다. 적은 양의 라이브러리를 빠르게 추가할 때 효과적이며 설정도 간단합니다.
- Browse > Upload 메뉴로 이동
- maven-releases 저장소 선택
- 파일 업로드 및 라이브러리 정보 입력
- Group ID: com.oracle
- Artifact ID: ojdbc8
- Version: 4.0
- Extension: jar
소규모 프로젝트나 임시적인 라이브러리 등록에 적합합니다.
3. 스크립트를 이용한 메이븐 업로드 (폐쇄망 대량 업로드에 최적화)
오프라인 환경에서 수많은 .jar 파일을 한번에 Nexus에 업로드해야 한다면, Maven의 deploy:deploy-file 기능과 배치 스크립트를 사용하는 것이 가장 효율적입니다.
스크립트 예시
@echo off
setlocal
:: Nexus 서버 정보 설정
set NEXUS_URL=http://127.0.0.1:8081/repository/maven-releases/
set REPO_ID=admin
call mvn deploy:deploy-file ^
-DgroupId=com.oracle ^
-DartifactId=ojdbc8 ^
-Dversion=4.0 ^
-Dpackaging=jar ^
-Dfile=D:\ojdvc-8.jar ^
-DrepositoryId=%REPO_ID% ^
-Durl=%NEXUS_URL%
echo "모든 라이브러리 업로드 완료!"
endlocal
대량 업로드가 필요하고 자동화가 중요한 상황에서는 이 방법이 가장 추천됩니다.
위 예시는 Windows 에서 사용 가능한 .bat 파일 예시 입니다.
마무리
폐쇄망에서의 개발 환경 구축은 초기 설정이 매우 중요합니다. Nexus를 활용하면 오픈소스 라이브러리를 효율적으로 관리할 수 있으며, 환경에 따라 프록시, UI 수동 업로드, 스크립트 자동화 등 다양한 방식으로 유연하게 대응할 수 있습니다.
관련글
[리눅스/Rocky] - [CI/CD 서버 구축 #1] Rocky Linux에 Jenkins 설치 (.war 파일 기반, Java 17)
[CI/CD 서버 구축 #1] Rocky Linux에 Jenkins 설치 (.war 파일 기반, Java 17)
CI/CD 파이프라인을 구축할 때 가장 널리 사용되는 도구 중 하나인 Jenkins를 Rocky Linux 환경에 설치하는 방법을 정리합니다.이번 글에서는 .war 파일을 직접 실행하는 방식으로 설치하며, Java 17 환경
jineddy.tistory.com
[리눅스/Rocky] - [CI/CD 서버 구축 #2] Rocky Linux에 Nexus 설치 하기
[CI/CD 서버 구축 #2] Rocky Linux에 Nexus 설치 하기
Nexus Repository Manager는 사내 CI/CD 환경에서 빌드 결과물(라이브러리, 패키지 등)을 저장·배포하는 데 사용됩니다.이 글에서는 Rocky Linux 서버에 Nexus 3.x 버전 설치를 단계별로 정리해보겠습니다.SI
jineddy.tistory.com
[리눅스/Rocky] - [CI/CD 서버 구축 #3] SSH 공개키 방식 로그인 설정 방법 (Jenkins 배포 연동용)
[CI/CD 서버 구축 #3] SSH 공개키 방식 로그인 설정 방법 (Jenkins 배포 연동용)
CI/CD 파이프라인에서 Jenkins를 사용해 자동 배포를 구성할 때, 보안성과 편의성을 위해 SSH 공개키 기반 로그인 방식을 설정하는 것이 좋습니다.이번 글에서는 **리눅스 서버(dev 계정)**에 SSH 공개
jineddy.tistory.com
[개발/Java] - [CI/CD 서버 구축 #5] Maven deploy 시 자동 생성된 pom.xml로 인한 문제와 해결법
[CI/CD 서버 구축 #5] Maven deploy 시 자동 생성된 pom.xml로 인한 문제와 해결법
폐쇄망 환경에서 mvn deploy:deploy-file 명령어로 외부 라이브러리를 Nexus Repository에 수동 업로드할 때, 종종 발생하는 문제가 있습니다. 바로 자동 생성된 pom.xml이 실제 배포된 라이브러리의 메타 정
jineddy.tistory.com
'서버 > CI 및 CD' 카테고리의 다른 글
[CI/CD 서버 구축 #5] Maven deploy 시 자동 생성된 pom.xml로 인한 문제와 해결법 (0) | 2025.04.23 |
---|---|
[CI/CD 서버 구축 #3] SSH 공개키 방식 로그인 설정 방법 (Jenkins 배포 연동용) (0) | 2025.04.17 |
[CI/CD 서버 구축 #2] Rocky Linux에 Nexus 설치 하기 (0) | 2025.04.14 |
[CI/CD 서버 구축 #1] Rocky Linux에 Jenkins 설치 (.war 파일 기반, Java 17) (0) | 2025.04.14 |