We are Architect

젠킨스로 배우는 CICD 파이프라인: Maven과 Nexus 리포지터리 통합(14) 본문

CI & CD/Jenkins

젠킨스로 배우는 CICD 파이프라인: Maven과 Nexus 리포지터리 통합(14)

the best infra 2024. 12. 28. 03:02

 

* Maven과 Nexus 리포지터리 통합하기

  • 메이븐과 넥서스 리포지터리를 통합하여 메이븐으로부터 빌드가 되면 넥서스에 아티팩트가 저장되는 것을 볼 것이다. 실제로 젠킨스 파이프라인에서도 구성되는 단계이다.

 

* 메이븐으로 새로운 프로젝트 생성

  • 다음과 같은 메이븐 명령어를 사용하여 생성한다.
  • 명령어의 뜻은 다음과 같다.
    • mvn archetype:generate :
      • Maven의 Archetype 플러그인을 호출하여 프로젝트를 생성
      • Archetype은 프로젝트의 기본 구조를 자동으로 생성하는 템플릿
    • -DgroupId=<그룹ID> : 
      • 프로젝트의 그룹 ID를 설정
    • -DartifactId=<아티팩트ID> : 
      • 프로젝트의 아티팩트 ID를 설정.
      • 생성되는 프로젝트의 이름으로, 디렉토리 이름과 기본 JAR 파일 이름으로 사용.
    • -DarchetypeArtifactId=<아키타입ID> : 
      • 자주 사용하는 Archetype
        • maven-archetype-quickstart: Java 애플리케이션용 기본 템플릿.
        • maven-archetype-webapp: 웹 애플리케이션용 템플릿.
    • -DinteractiveMode=false : 
      • 상호작용 모드를 비활성화합니다.
      • 이 옵션을 설정하면 Maven이 사용자 입력 없이 자동으로 프로젝트를 생성.
# 다음과 같은 예제 명령어를 사용해 프로젝트 생성.
mvn archetype:generate -DgroupId=com.example -DartifactId=maven-nexus-example -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

 

 

 

* 생성된 프로젝트 안에 pom.xml 파일 수정

  • 경로에 pom.xml 파일 존재 : C:\프로젝트 이름폴더\maven-nexus-example\pom.xml`
    • 들어가서 해당 구간 수정 혹은 추가. > 서버 주소와 리포지터리 이름.
    • 필자 같은 경우에는 java버전도 17로 수정하였다.
    • repository의 id값은 자유롭게 커스텀이 가능하나 일정해야 한다.

* maven 파일안에 setting.xml 파일 수정

  • setting.xml 파일 안에는 넥서스 리포지터리로 들어갈 수 있게 계정이 정보가 들어가야 한다.
  • 여기서도 pom.xml의 repository id값과 setting.xml 파일의 server 구간 id값이 동일해야 한다.

 

 

* maven 명령어 입력

  • maven clean install : 
    • 우선 해당 pom.xml 파일이 존재하는 디렉터리로 이동한다.
    • mvn clean install 명령어는 Maven을 사용하여 프로젝트를 빌드하고, 결과물을 로컬 리포지토리에 설치하는 데 사용
  • maven deploy : 
    • 이어서 해당 명령어도 적용한다.
    • 빌드되어서 추출된 아티팩트 값들을 배포하는 명령어.
      이렇게 뜨면 빌드 성공

* 넥서스 리포지터리에서 아티펙트 확인

  • 위에서 배포까지 끝났으면 저장되는 리포지터리는 넥서스 리포지터리이기 때문에 산출물들이 저장소 이동해진다.
  • 서버로 접속해서 아티펙트 결과물들을 확인해 본다.