본문 바로가기
IT

[AWS] EC2 로 Nexus 저장소 세팅하기-(2)업로드및내려받기

by 뽀리님 2025. 6. 2.

이제 Nexus Web UI 페이지로 Repositroy jar를 올려보자

 

 

1. 설정메뉴 > Repository 로 이동

 

 

 

2. Create Repository 클릭후 maven2(hosted) 선택

이름과  정책 버전 설정, 나는 스냅샷으로 만들었다.

 

  • Release
    프로젝트가 안정적으로 배포되고 사용될 때 사용
    일반적으로 버그 수정, 기능 개선 등 작은 변경 사항 포함
    릴리즈 버전의 artifact는 배포된 후에 변경되지 않음 (수정 시 버전 up)

 

  • Snapshot
    안정화되지 않은 개발 중인 버전
    개발 중인 코드에 대한 최신 빌드를 나타냄
    스냅샷 버전의 artifact는 커밋할 때마다 업데이트됨

 

  • Mixed
    Release, Snapshot 상관없이 배포는 되지만, 수정 시 버전 up 해야함

 

3. Role  생성

 

Role을 지정하지 않으면 초기에 아무 권한도 없기 때문에 롤을 먼저 생성한다.

 

 

Role ID와 이름 등등 적고 > Applied Privileges 에서 Modify Applied Privileges 버튼 클릭

 

그런다음 Repository 명을 검색한 후 모두 클릭해준다.

 

 

4. User 생성

필수값을 입력해준후 하단의 Role 선택부분에서 만들었던 Role을 선택해준 후 생성한다.

 

 

 

Nexus WebUI에서 할껀 다 했다. 

 

이제 내가 Library로 올리려는 프로젝트 설정을 바꿔보자.

 

5. 올리려는 해당 프로젝트 build.gradle 설정 수정

기존설정에 추가해주어야 하는 속성만 적었다.

 

plugins {
    id 'java-library'
    id 'org.springframework.boot' version '3.5.0'
    id 'io.spring.dependency-management' version '1.1.7'
    id 'maven-publish'
}

 

 

publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
            groupId = project.group
            artifactId = 'common-core'
            version = project.version
        }
    }

    repositories {
        maven {
            name = "nexus"
            url = uri("http://{publicIP}:8081/repository/{생성한레포지토리명}/")
            allowInsecureProtocol = true // Gradle7 부터는 http를 기본차단하므로 해당옵션필수
            credentials {
                username = project.findProperty("nexusUsername") ?: "" // gradle.properties로 따로빼서 설정하였다.
                password = project.findProperty("nexusPassword") ?: ""
            }
        }
    }
}

 

 

계정정보는 환경변수로 선언하거나 properties로 따로 빼서 쓴다.

gralde.properties

nexusUsername={User명}
nexusPassword={패스워드}

 

 

계정정보는 유출되면 안되므로 .gitignore에 따로 추가해준다.

gradle.properties

 

 

그런다음 gradle clean build 후 publish 해보자.

IntelliJ는 그래들 툴에 publishing > publish 에 있다.

 

성공후 Nexus Web UI > browse 에 가서 보면 내가 올린 파일이 있는걸 확인할 수 있다.

 

 

6. Nexus Repository에서 파일 받아와 사용하기

받아오려는 프로젝트에 아래만 추가해준다.

repositories {
    maven {
        name = "nexus"
        url = uri("http://{퍼블릭IP}:8081/repository/{레포지토리명}/")
        allowInsecureProtocol = true
    }
    mavenCentral()
}

 

그리고 디펜던시에 추가한다.

// 사용자정의 nexus
implementation '{레포지토리_그룹명}:{레포지토리프로젝트명.버전}'

 

클린,빌드후 의존성 라이브러리에 잘 추가된걸 확인할 수 있다.