젠킨스로 배우는 CI/CD 파이프라인 구축 - 넥서스 설치 및 적용

2025. 7. 6. 21:58·Study/젠킨스로 배우는 CI,CD 파이프라인 구축

메이븐과 넥서스 통합 및 자바 API 릴리스용 프리스타일 작업 생성 챕터2

📂 넥서스 리포지터리의 이해

넥서스 아티팩트 리포지터리를 살펴보자

💡아티팩트

  • 빌드 과정에서 생성되는 산출물
  • 웹 애플리케이션을 개발중이고, 애플리케이션을 .war파일의 형태로 패키징한다면 해당 .war파일이 바로 아티팩트이다.
  • 자바 API 프로젝트의 경우에는 빌드 과정에서 생성되는 .jar파일이 아티팩트가 된다.

💡넥서스 리포지터리

  • 아티팩트를 릴리스하고 필요에 따라 사용자가 아티팩트를 다운로드할 수 있는 기능을 제공하는 플랫폼이다.
  • 개발 프로젝트에서 사용하는 의존성 라이브러리(아티팩트)들을 저장하고 관리하는 중앙 저장소(Repository Manager)이며, 주로 Maven, Gradle 등에서 많이 사용된다.

💡넥서스 리포지터리 설치

https://www.sonatype.com/products/sonatype-nexus-oss-download

 

Free Sonatype Nexus Repository Download

Get your free Sonatype Nexus Repository download today and accelerate your DevOps pipelines with the next iteration of Nexus OSS.

www.sonatype.com

  • nexus-3.81.1-01 : 넥서스 시스템 관련 파일이 있다.
  • sonatype-work : 버전별로 생성한 아티팩트 리포지터리의 데이터가 저장된다.

📂 넥서스 리포지터리 시작

서버에서 사용할 IP주소와 포트는 아래 파일에서 설정한다.

C:\NexusRepository\nexus-3.81.1-01\etc\nexus-default.properties > application-host에 현재 컴퓨터의 IP로 변경한다.

C:\NexusRepository\nexus-3.81.1-01\bin에 있는 nexus.exe파일을 실행한다.

아래 명령어를 사용하면 넥서스를 윈도우 서비스로 설치할 수 있다.

명령 프롬프트를 열고 C:\NexusRepository\nexus-3.81.1-01\bin 로 이동 후 아래 명령어를 실행하면 된다.

Nexus.exe install <서비스이름>

 

서비스가 설치되었는지 확인할 수 있다!

https://help.sonatype.com/en/install-nexus-repository.html

넥서스 다운로드 및 설치할때 도움되는 사이트

 

Install Nexus Repository

The Nexus RepositoryTM distribution archives combine the application and required resources in an archive file. When testing Nexus RepositoryTM on a local workstation, the files may be extracted and run in any environment that supports a Java runtime.Many

help.sonatype.com

처음에 nexus.exe /run을 했는데도 설치가 안되었는데 위의 사이트를 참고하니 설치가 되었다!

bin\install-nexus-service.bat
Start the service: .\nexus.exe //ES//SonatypeNexusRepository
Stop the service: .\nexus.exe //SS//SonatypeNexusRepository
Uninstall the service: .\nexus.exe //DS//SonatypeNexusRepository

실행 후 http:// <ip주소> : <포트>로 접속하면 아래 사이트로 진입한다.

sign in 버튼을 클릭 후 로그인을 한다. 초기 로그인은 아이디는 admin을 입력하고, 패스워드는 C:\NexusRepository\sonatype-work\nexus3 폴더에 있는 admin.password 파일에 있는 암호문을 복사해서 입력한다. 필자는 admin/1234로 설정하였다!


📂 호스티드 리포지터리 생성

Repository > maven2(hosted) > name :JenkinsBookCalulatorAPI_Released 을 입력 > Create repository

📂 메이븐과 넥서스 리포지터리 통합

넥서스 리포지터리를 사용해 아티팩트를 배포하도록 메이븐을 설정해보자!

  • 프로젝트의 pom.xml파일에 넥서스 리포지터리 URL 추가 (URL은 넥서스 repository > URL 확인가능)

 

  • 넥서스 리포지터리는 익명 접속을 허용하지 않으므로 settings.xml파일에 넥서스 이포지터리의 사용자 이름과 비밀번호를 제공해야한다.

💡넥서스 리포지터리에서 CalculatorAPI.jar 파일 릴리스

메이븐에서 넥서스 리포지터리 URL과 자격증명을 구성했다면 넥서스 리포지터리로 CalculatorAPI.jar를 릴리스할 준비가 모두 끝난것이다.

명령 프롬프트를 열고 작업 디렉터리를 자바API 프로젝트 디렉터리로 변경하고 명령어를 실행한다.

리소스 다운로드, 소스코드 컴파일, 단위테스트 컴파일 및 실행등 모든 빌드 수명 주기 단계를 실행한다.

그리고 마지막 단계에서 생성된 CalculatorAPI1.0.jar가 넥서스 리포지터리로 배포된다.

mvn deploy

📂 넥서스 리포지터리에서 CalculatorAPI.jar를 릴리스하는 젠킨스 프리스타일 작업 생성

넥서스 리포지터리로 계산기의 새번전을 릴리스하는 프리스타일 작업을 생성하고 설정하는 방법을 알아보자!

1단계 : 젠킨스에서 메이븐 설정

  • Default global settings provider > Use default maven global settings
  • 메이븐의 ${user.name}\.m2에 있는 settings.xml파일을 의미하며, 넥서스 리포지터리 자격 증명을 설정하는 파일이다.

2단계 : 깃 리포지터리 자격증명 추가

깃랩 토큰 생성 후 젠킨스 자격증명에서 사용!

젠킨스에서 자격증명 생성

3단계 : 젠킨스 대시보드에서 프리스타일 작업 생성

4단계 : API 프로젝트에 뺄셈 함수와 단위 테스트 케이스 추가

이클립스에 Pranodayd. CaculatorAPI 패키지 아래 src\main\java , src\test\java 각 파일을 생성하고 pom.xml에서 버전 값을 2.0으로 변경한다.

5단계 : 로컬 리포지터리에서 커밋과 푸시 실행

6단계 : SubstactionFunction 브랜치를 깃랩 중앙 리포지터리의 Master 브랜치와 병합

깃랩에 Create merge request버튼이 뜨고 클릭한다.

Delete source branch when merge request is accepted. (병합 요청이 수락되면 소스 브랜치를 삭제) 

: SubtractionFunction 브랜치가 Master와 병합된 후 SubtractionFunction 브랜치가 중앙 리포지터리에서 삭제된다.

📂 넥서스 리포지터리에서 CalculatorAPI.jar를 릴리스하는 젠킨스 프리스타일 작업 실행

💊젠킨스에서 작업을 실행하니 처음에 아래 401로 실패가 뜸

Failed to deploy artifacts
status code: 401, reason phrase: Unauthorized (401)
➡ 즉, Maven이 Nexus에 로그인하려 했지만 사용자 인증 정보가 없거나 틀렸음을 의미합니다.

🔗 해결 방안

✅ settings.xml에 <server> 등록 id, username, password 정확히 입력
✅ pom.xml의 <repository><id>와 일치 예: PrandaydNexusRepo
✅ Nexus에서 계정이 배포 권한 가짐 해당 저장소에 write 가능해야 함
❌ 401 Unauthorized 대부분은 ID/비밀번호(토큰) 불일치 또는 누락

Jenkins에서 Maven이 사용하는 settings.xml 경로 확인하여 sever를 등록했더니 성공했다!

작업이 성공되면 2.0 파일이 넥서스  리포지터리로 릴리스된 화면을 볼수 있다.

 

'Study > 젠킨스로 배우는 CI,CD 파이프라인 구축' 카테고리의 다른 글

젠킨스로 배우는 CI/CD 파이프라인 구축 - 파이프라인  (3) 2025.08.03
젠킨스로 배우는 CI/CD 파이프라인 구축 - SSH  (5) 2025.08.03
젠킨스로 배우는 CI/CD 파이프라인 구축 - 깃과 깃랩  (0) 2025.07.06
젠킨스로 배우는 CI/CD 파이프라인 구축 - 메이븐으로 프로젝트 준비  (0) 2025.07.06
젠킨스로 배우는 CI/CD 파이프라인 구축 - 젠킨스 작업의 이해  (4) 2025.06.15
'Study/젠킨스로 배우는 CI,CD 파이프라인 구축' 카테고리의 다른 글
  • 젠킨스로 배우는 CI/CD 파이프라인 구축 - 파이프라인
  • 젠킨스로 배우는 CI/CD 파이프라인 구축 - SSH
  • 젠킨스로 배우는 CI/CD 파이프라인 구축 - 깃과 깃랩
  • 젠킨스로 배우는 CI/CD 파이프라인 구축 - 메이븐으로 프로젝트 준비
happy_dev
happy_dev
복사하고 붙여넣기 잘하고 싶어요
  • happy_dev
    happy의 개발일지
    happy_dev
  • 전체
    오늘
    어제
    • 전체 (43)
      • Java (0)
      • React (1)
      • DB (1)
      • Study (41)
        • 친절한 SQL 튜닝 (9)
        • 모던 리액트 Deep Dive (18)
        • 젠킨스로 배우는 CI,CD 파이프라인 구축 (14)
        • Studyd (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    toad
    oracle
    Jenkins
    조인
    젠킨스
    DB
    리액트
    SQL
    인덱스의기본
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
happy_dev
젠킨스로 배우는 CI/CD 파이프라인 구축 - 넥서스 설치 및 적용
상단으로

티스토리툴바