# Nexus 환경 빠른 시작 가이드 폐쇄망 환경에서 내부 Nexus를 사용하여 프로젝트를 빌드하는 빠른 가이드입니다. ## 1단계: Nexus 정보 확인 DevOps 팀 또는 Nexus 관리자에게 다음 정보를 받으세요: ``` Nexus URL: http://nexus.your-company.com:8081 Username: your-username Password: your-password ``` ## 2단계: gradle.properties 파일 생성 ### Windows ```cmd cd D:\workspace\springbatch-test copy gradle.properties.example gradle.properties notepad gradle.properties ``` ### Linux/Mac ```bash cd /workspace/springbatch-test cp gradle.properties.example gradle.properties vi gradle.properties ``` ### 설정 내용 ```properties nexusUrl=http://nexus.your-company.com:8081 nexusUsername=your-username nexusPassword=your-password ``` ## 3단계: build.gradle 수정 `build.gradle` 파일의 repositories 섹션 수정: ### 변경 전 ```gradle repositories { // 폐쇄망 환경에서는 아래 Nexus 설정을 사용하고 mavenCentral()은 주석 처리 // Use Nexus repository in closed network environment // Uncomment below and comment out mavenCentral() /* maven { url = "${nexusUrl}/repository/maven-public/" credentials { username = "${nexusUsername}" password = "${nexusPassword}" } allowInsecureProtocol = false } */ // 인터넷 접속 가능 환경 mavenCentral() } ``` ### 변경 후 ```gradle repositories { // 폐쇄망 환경에서는 아래 Nexus 설정을 사용하고 mavenCentral()은 주석 처리 maven { url = "${nexusUrl}/repository/maven-public/" credentials { username = "${nexusUsername}" password = "${nexusPassword}" } allowInsecureProtocol = true // HTTP 사용 시 } // 인터넷 접속 가능 환경 - 주석 처리! // mavenCentral() } ``` ## 4단계: settings.gradle 수정 (선택사항) Plugin도 Nexus에서 다운로드하려면: ### 변경 전 ```gradle /* pluginManagement { repositories { maven { url = "${nexusUrl}/repository/gradle-plugins/" ... } } } */ ``` ### 변경 후 ```gradle pluginManagement { repositories { maven { url = "${nexusUrl}/repository/gradle-plugins/" credentials { username = "${nexusUsername}" password = "${nexusPassword}" } allowInsecureProtocol = true // HTTP 사용 시 } maven { url = "${nexusUrl}/repository/maven-public/" credentials { username = "${nexusUsername}" password = "${nexusPassword}" } allowInsecureProtocol = true } } } ``` ## 5단계: 빌드 테스트 ```bash # Windows gradlew.bat clean build --refresh-dependencies # Linux/Mac ./gradlew clean build --refresh-dependencies ``` ## 6단계: 빌드 성공 확인 ``` BUILD SUCCESSFUL in 15s ``` 성공 메시지가 나오면 완료! ## 트러블슈팅 ### 문제 1: 인증 실패 (401 Unauthorized) **증상:** ``` > Could not resolve all dependencies > HTTP 401 Unauthorized ``` **해결:** 1. gradle.properties의 사용자명/비밀번호 확인 2. Nexus 웹에서 로그인 테스트: `http://nexus.company.com:8081` ### 문제 2: SSL 인증서 오류 **증상:** ``` > PKIX path building failed ``` **해결:** 1. HTTPS 대신 HTTP 사용 시도 2. `allowInsecureProtocol = true` 설정 확인 ### 문제 3: 의존성을 찾을 수 없음 **증상:** ``` > Could not find org.springframework.boot:spring-boot-starter-batch:2.7.18 ``` **해결:** 1. Nexus 관리자에게 라이브러리 확인 요청 2. Nexus 웹에서 검색: Browse → maven-public 3. Proxy 설정 확인 요청 ### 문제 4: HTTP 프로토콜 오류 **증상:** ``` > Using insecure protocols with repositories is not allowed ``` **해결:** build.gradle에 `allowInsecureProtocol = true` 추가: ```gradle maven { url = "http://..." allowInsecureProtocol = true // 이 줄 추가! } ``` ## 체크리스트 - [ ] Nexus URL, Username, Password 확인 - [ ] gradle.properties 파일 생성 및 설정 - [ ] build.gradle에서 Nexus 주석 해제 - [ ] build.gradle에서 mavenCentral() 주석 처리 - [ ] allowInsecureProtocol 설정 (HTTP 사용 시) - [ ] settings.gradle 수정 (plugin 사용 시) - [ ] 빌드 테스트 성공 ## 추가 도움말 상세한 설정은 `NEXUS_SETUP.md` 파일을 참고하세요. ```bash # 전체 가이드 cat NEXUS_SETUP.md # 또는 편집기로 열기 notepad NEXUS_SETUP.md ``` ## 문의 문제 발생 시: 1. NEXUS_SETUP.md의 트러블슈팅 섹션 확인 2. DevOps 팀 또는 Nexus 관리자에게 문의 3. 네트워크 팀에 방화벽 설정 확인