You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4.7 KiB

Nexus 환경 빠른 시작 가이드

폐쇄망 환경에서 내부 Nexus를 사용하여 프로젝트를 빌드하는 빠른 가이드입니다.

1단계: Nexus 정보 확인

DevOps 팀 또는 Nexus 관리자에게 다음 정보를 받으세요:

Nexus URL: http://nexus.your-company.com:8081
Username: your-username
Password: your-password

2단계: gradle.properties 파일 생성

Windows

cd D:\workspace\springbatch-test
copy gradle.properties.example gradle.properties
notepad gradle.properties

Linux/Mac

cd /workspace/springbatch-test
cp gradle.properties.example gradle.properties
vi gradle.properties

설정 내용

nexusUrl=http://nexus.your-company.com:8081
nexusUsername=your-username
nexusPassword=your-password

3단계: build.gradle 수정

build.gradle 파일의 repositories 섹션 수정:

변경 전

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()
}

변경 후

repositories {
    // 폐쇄망 환경에서는 아래 Nexus 설정을 사용하고 mavenCentral()은 주석 처리
    maven {
        url = "${nexusUrl}/repository/maven-public/"
        credentials {
            username = "${nexusUsername}"
            password = "${nexusPassword}"
        }
        allowInsecureProtocol = true  // HTTP 사용 시
    }

    // 인터넷 접속 가능 환경 - 주석 처리!
    // mavenCentral()
}

4단계: settings.gradle 수정 (선택사항)

Plugin도 Nexus에서 다운로드하려면:

변경 전

/*
pluginManagement {
    repositories {
        maven {
            url = "${nexusUrl}/repository/gradle-plugins/"
            ...
        }
    }
}
*/

변경 후

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단계: 빌드 테스트

# 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 추가:

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 파일을 참고하세요.

# 전체 가이드
cat NEXUS_SETUP.md

# 또는 편집기로 열기
notepad NEXUS_SETUP.md

문의

문제 발생 시:

  1. NEXUS_SETUP.md의 트러블슈팅 섹션 확인
  2. DevOps 팀 또는 Nexus 관리자에게 문의
  3. 네트워크 팀에 방화벽 설정 확인