IT/DevOps

[DevOps] Nexus 실행 및 연동 (feat. eGovCI)

어흥꼬비 2024. 5. 8. 21:05
반응형

목차

    전자정부프레임워크의 서버용 개발환경에 들어 있는 Nexus를 설치 및 연동 과정을 기록한다.

     

    [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI)

    목차이번엔 전자정부프레임워크의 서버용 개발환경을 이용해서 CI, CD를 구축했다.다음엔 저번에 설치한 GitLab과 새로 설치한 Jenkins로 처음부터 연동하는 것도 포스팅 예정이다. [DevOps] CentOS 8 Jen

    yaga.tistory.com


    Nexus 실행 및 설정

    eGovCI-4.2.0을 기준으로 작성되었다.

    해당 버전의 Nexus OSS 버전은 2.15.1이라 jdk 1.8이 필수다.

    해서 nexus 실행 시에는 따로 jdk 1.8로 돌려야 한다.

    jdk 1.8 리눅스용을 해당 경로에 업로드 후 설정파일에서 설정한다.

    vi ~/eGovCI-4.2.0/bin/nexus-2.15.1-02-bundle/nexus-2.15.1-02/bin/jsw/conf/wrapper.conf

    Nexus의 포트가 WAS의 포트와 중복되지 않도록 포트도 변경한다.

    vi ~/eGovCI-4.2.0/bin/nexus-2.15.1-02-bundle/nexus-2.15.1-02/conf/nexus.properties

    Nexus를 백그라운드로 실행하기 위해 시작 쉘 스크립트를 살짝 수정한다.

    vi ~/eGovCI-4.2.0/start-nexus.sh

    eGovCI-4.2.0의 start-nexus.sh를 실행한다.

    이 때 nexus와 연동된 jdk 버전이 1.8이 아닐 경우 에러가 발생한다.

    브라우저에서 서버아이피:8082/nexus로 url 호출 시 화면이 표시되는지 확인 후 admin/admin123으로 로그인 후 비밀번호를 변경한다.

    Views/Repositories를 선택한다.

    3rd party > 아래 메뉴에서 Artifact Upload > GAV Parameters를 선택 후 Group, Artifact, Version입력 후 Packaging을 jar로 선택한다

    Select Artifact(s) for Upload영역 > Select Artifact(s) to Upload 선택 후 업로드 할 jar파일을 선택 후 Upload Artifact(s)로 업로드 한다.

    페이지 새로고침 또는 Repository 우클릭 > Update Index 선택 후 jar파일이 저장되었는지 확인한다. 

    서버에서도 해당 repository에 업로드 된 jar파일을 확인할 수 있다.

    Nexus Repository 프로젝트에 적용

    Nexus 저장소를 프로젝트에 적용하기 위해 pom.xml의 <repositories>부분을 아래처럼 수정한다.

    Jenkins 빌드 시 다음과 같은 에러 발생 시 아래처럼 조치한다.

    maven에서 보안상 외부 http 통신이 안되게끔 정책이 변경되었기에 Nexus 저장소의 http를 무력화 하기 위해 설정파일의 미러내용을 수정 후 재기동한다.

    vi ~/eGovCI-4.2.0/bin/apache-maven-3.9.6/conf/settings.xml

    maven 재기동 후 Jenkins 재빌드 시 Nexus 저장소에서 jar파일이 다운로드 됨을 확인한다.

    로컬에서 빌드 시 비슷한 에러 발생 할 경우 local repository에 settings.xml 생성 후 재시도한다.

    settings.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
    http://maven.apache.org/xsd/settings-1.0.0.xsd">
    
    <mirrors>
    <mirror>
        <id>maven-default-http-blocker</id>
        <mirrorOf>external:dont-match-anything-mate:*</mirrorOf>
        <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
        <url>http://0.0.0.0/</url>
    </mirror>
    </mirrors>
    
    
    </settings>

    개인 스터디 기록을 메모하는 공간이라 틀린점이 있을 수 있습니다.

    틀린 점 있을 경우 댓글 부탁드립니다.

     

    반응형

    'IT > DevOps' 카테고리의 다른 글

    [git] git revert  (40) 2024.06.06
    [git] git reset(feat. soft, mixed, hard)  (36) 2024.06.06
    [DevOps] CentOS 8 Jenkins CI, CD 환경 구축(feat. eGovCI)  (61) 2024.05.03
    [DevOps] CentOS 8 GitLab 설치  (35) 2024.05.01
    [DevOps] CentOS 8 JenKins 설치(feat. CI, CD)  (37) 2024.05.01