본문 바로가기
VCS/CICD

젠킨스, 메이븐과 넥서스 통합 및 자바 API 릴리스용 프리스타일 작업 생성

by Jinger 2024. 12. 30.

서론

   효율적인 빌드와 배포를 위해 메이븐, 깃, 넥서스, 그리고 젠킨스를 통합하는 방법을 알아보자. 이를 통해 자바 API 프로젝트를 릴리스하고 관리할 수 있는 자동화된 워크플로를 구축해보자.


깃의 이해

   Git은 소스 코드 관리를 위한 분산형 버전 관리 시스템(VCS)입니다. 다음과 같은 주요 기능을 제공한다.

  • 버전 관리: 코드 변경 내역 추적 및 복원.
    • 중앙집중식 관리 시스템: 모든 버전 관리가 중앙 서버에서 이루어진다.
    • 로컬 버전 관리 시스템: 사용자가 자신의 로컬 시스템에서 버전을 관리한다.
    • 분산 버전 관리 시스템: 모든 개발자가 로컬 저장소에 전체 히스토리를 저장한다.
  • 협업: 분산된 개발 팀이 동시에 작업 가능.
  • 분기 및 병합: 여러 개발 경로를 독립적으로 진행.

깃허브와 깃랩

  • GitHub: 퍼블릭 및 프라이빗 저장소를 지원하며, 오픈 소스 프로젝트에 적합하다.
  • GitLab: CI/CD 파이프라인, 문제 추적, 코드 리뷰 기능을 포함한 올인원 DevOps 플랫폼이다.

깃 프로세스의 이해

Git 워크플로의 주요 단계:

  1. 로컬 리포지터리 생성
  2. 깃랩에 중앙 리포지터리 생성 
  3. 로컬 리포지터리로 커밋
  4. 로컬 리포지터리의 코드를 깃랩으로 푸시(연결)
  5. 깃랩의 리포지터리에 마스터 브랜치 생성

깃과 넥서스 관계

   Nexus Repository는 빌드된 아티팩트를 중앙에서 관리한다. Git은 소스 코드 버전 관리를, Nexus는 빌드 결과물을 관리하며 두 시스템은 CI/CD 워크플로에서 유기적으로 통합된다.


넥서스 리포지터리의 이해

   넥서스 리포지터리는 다양한 패키지 형식을 지원하는 아티팩트 관리 시스템으로, 프라이빗 리포지터리를 통해 안전하게 의존성을 관리한다. 버전 관리와 캐싱 기능을 제공하여 네트워크 속도를 개선하고, 사용자 및 그룹 기반의 접근 제어로 보안을 강화한다. REST API를 통해 자동화와 통합이 용이하며, 모니터링 및 보고 기능으로 시스템 관리가 효율적이다. 이는 소프트웨어 개발 과정에서 다음과 같은 역할을 한다. 

  • 아티팩트 저장 및 배포
  • 프록시 저장소로 원격 리포지터리 캐싱
  • 호스티드 저장소로 자체 아티팩트 관리

넥서스 리포지터리 설치 및 시작

  1. Nexus Repository를 공식 사이트에서 다운로드.
  2. 설치 후 nexus 실행 스크립트를 실행하여 시작.
    1. cmd 관리자 권한으로 실행
    2. 다음 명령어를 cmd에 입력
      1. cd <설치파일/버전/bin>
      2. Nexus.exe /install
      3. Nexus.exe /run
  3. 기본 접속 URL: http://localhost:8081.

넥서스 리포지터리 매니저 접속

  1. 브라우저에서 http://localhost:8081로 접속.
  2. 기본 관리자 계정으로 로그인 (admin / 초기 비밀번호는 설치 디렉토리에서 확인 가능).
  3. UI를 통해 설정 및 관리.

호스티드 리포지터리 생성

  1. Nexus 대시보드에서 Repositories 클릭
  2. Create Repository 선택
  3. Maven Hosted를 선택 후 설정
    • Repository ID: maven-releases
    • Version Policy: Release
    • Deployment Policy: Allow Redeploy
  4. 저장 후 리포지터리가 생성된다.

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

Maven 프로젝트의 pom.xml 파일 수정

<distributionManagement>
    <!--Pulish the versioned releases here-->
	<repository>
        <id>nexus-releases</id>
        <url>http://localhost:8081/repository/maven-releases/</url>
    </repository>
</distributionManagement>

settings.xml 파일에 인증 정보 추가

<settings>
	<servers>
    	<server>
        	<id>nexus-releases</id>
        	<username>admin</username>
        	<password>your_password</password>
    	</server>
	</servers>
</settings>

Maven을 통해 배포 명령 실행

mvn deploy

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

  1. Jekins에서 Maven 설정
    1. jenkins 관리자에서 Glolbal Tool Configuration으로 이동
    2. Maven Configuration 섹션 내에 Default settings provider 필드의 기본값으로 사용
    3. Add Maven 클릭
    4. 이름 입력 후 자동 설치 체크박스를 해체, MAVEN_HOME 필드에 메이븐 설치 디렉터리 경로를 지정하고 Save
  2. Git 리포지터리 자격 증명 추가
    1. Manage Credentials를 클릭해 Credentials 페이지 이동
    2. 깃 사용자 이름과 비밀번호를 입력해 자격 증명 항목을 만든다.
  3. Jenkins 작업 생성
    • Jenkins 대시보드에서 새 작업(New Item) 클릭.
    • 프리스타일 프로젝트(Freestyle Project) 선택 후 작업 이름 입력.
  4. API 프로젝트에 단위 테스트 케이스 추가
    • scr/main/java 폴더에 패키지 파일 추가
    • scr/test/java 폴더에 테스트 파일 추가
    • pom.xml 검토
  5. 로컬 리포지터리에서 커밋과 푸시
  6. 브랜치를 깃랩 주앙 리포지터리의 Main 브랜치 병합
  7. 작업 실행
    • 작업 생성 후 빌드 버튼 클릭.
    • 성공 여부는 콘솔 출력으로 확인.

참고

 

GitHub 시작하기

서론     컴퓨터 관련 직종을 희망한다면 프로그램의 버전관리를 할 줄 알아야 하지만, 누가 가르쳐주지도 않고 가르쳐주기도 애매한 분야이다. 가볍게 알고 있어도 사용하는 데에 큰 문제가

jinger.tistory.com

 

반응형

댓글