서론
효율적인 빌드와 배포를 위해 메이븐, 깃, 넥서스, 그리고 젠킨스를 통합하는 방법을 알아보자. 이를 통해 자바 API 프로젝트를 릴리스하고 관리할 수 있는 자동화된 워크플로를 구축해보자.
깃의 이해
Git은 소스 코드 관리를 위한 분산형 버전 관리 시스템(VCS)입니다. 다음과 같은 주요 기능을 제공한다.
- 버전 관리: 코드 변경 내역 추적 및 복원.
- 중앙집중식 관리 시스템: 모든 버전 관리가 중앙 서버에서 이루어진다.
- 로컬 버전 관리 시스템: 사용자가 자신의 로컬 시스템에서 버전을 관리한다.
- 분산 버전 관리 시스템: 모든 개발자가 로컬 저장소에 전체 히스토리를 저장한다.
- 협업: 분산된 개발 팀이 동시에 작업 가능.
- 분기 및 병합: 여러 개발 경로를 독립적으로 진행.
깃허브와 깃랩
- GitHub: 퍼블릭 및 프라이빗 저장소를 지원하며, 오픈 소스 프로젝트에 적합하다.
- GitLab: CI/CD 파이프라인, 문제 추적, 코드 리뷰 기능을 포함한 올인원 DevOps 플랫폼이다.
깃 프로세스의 이해
Git 워크플로의 주요 단계:
- 로컬 리포지터리 생성
- 깃랩에 중앙 리포지터리 생성
- 로컬 리포지터리로 커밋
- 로컬 리포지터리의 코드를 깃랩으로 푸시(연결)
- 깃랩의 리포지터리에 마스터 브랜치 생성
깃과 넥서스 관계
Nexus Repository는 빌드된 아티팩트를 중앙에서 관리한다. Git은 소스 코드 버전 관리를, Nexus는 빌드 결과물을 관리하며 두 시스템은 CI/CD 워크플로에서 유기적으로 통합된다.
넥서스 리포지터리의 이해
넥서스 리포지터리는 다양한 패키지 형식을 지원하는 아티팩트 관리 시스템으로, 프라이빗 리포지터리를 통해 안전하게 의존성을 관리한다. 버전 관리와 캐싱 기능을 제공하여 네트워크 속도를 개선하고, 사용자 및 그룹 기반의 접근 제어로 보안을 강화한다. REST API를 통해 자동화와 통합이 용이하며, 모니터링 및 보고 기능으로 시스템 관리가 효율적이다. 이는 소프트웨어 개발 과정에서 다음과 같은 역할을 한다.
- 아티팩트 저장 및 배포
- 프록시 저장소로 원격 리포지터리 캐싱
- 호스티드 저장소로 자체 아티팩트 관리
넥서스 리포지터리 설치 및 시작
- Nexus Repository를 공식 사이트에서 다운로드.
- 설치 후 nexus 실행 스크립트를 실행하여 시작.
- cmd 관리자 권한으로 실행
- 다음 명령어를 cmd에 입력
- cd <설치파일/버전/bin>
- Nexus.exe /install
- Nexus.exe /run
- 기본 접속 URL: http://localhost:8081.
넥서스 리포지터리 매니저 접속
- 브라우저에서 http://localhost:8081로 접속.
- 기본 관리자 계정으로 로그인 (admin / 초기 비밀번호는 설치 디렉토리에서 확인 가능).
- UI를 통해 설정 및 관리.
호스티드 리포지터리 생성
- Nexus 대시보드에서 Repositories 클릭
- Create Repository 선택
- Maven Hosted를 선택 후 설정
- Repository ID: maven-releases
- Version Policy: Release
- Deployment Policy: Allow Redeploy
- 저장 후 리포지터리가 생성된다.
메이븐과 넥서스 리포지터리 통합
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를 릴리스하는 젠킨스 프리스타일 작업 생성 및 실행
- Jekins에서 Maven 설정
- jenkins 관리자에서 Glolbal Tool Configuration으로 이동
- Maven Configuration 섹션 내에 Default settings provider 필드의 기본값으로 사용
- Add Maven 클릭
- 이름 입력 후 자동 설치 체크박스를 해체, MAVEN_HOME 필드에 메이븐 설치 디렉터리 경로를 지정하고 Save
- Git 리포지터리 자격 증명 추가
- Manage Credentials를 클릭해 Credentials 페이지 이동
- 깃 사용자 이름과 비밀번호를 입력해 자격 증명 항목을 만든다.
- Jenkins 작업 생성
- Jenkins 대시보드에서 새 작업(New Item) 클릭.
- 프리스타일 프로젝트(Freestyle Project) 선택 후 작업 이름 입력.
- API 프로젝트에 단위 테스트 케이스 추가
- scr/main/java 폴더에 패키지 파일 추가
- scr/test/java 폴더에 테스트 파일 추가
- pom.xml 검토
- 로컬 리포지터리에서 커밋과 푸시
- 브랜치를 깃랩 주앙 리포지터리의 Main 브랜치 병합
- 작업 실행
- 작업 생성 후 빌드 버튼 클릭.
- 성공 여부는 콘솔 출력으로 확인.
참고
반응형
'VCS > CICD' 카테고리의 다른 글
젠킨스 코드형 파이프라인 이해 (0) | 2025.01.01 |
---|---|
젠킨스 파이프라인 이해 (0) | 2024.12.31 |
젠킨스, 메이븐으로 자바 API 프로젝트 준비 (0) | 2024.12.30 |
젠킨스 작업의 이해 (0) | 2024.12.29 |
젠킨스 자격 증명 관리와 사용자 관리 (0) | 2024.12.29 |
댓글