+1-1+1-1+1-1+1-1...
Maven 프로젝트 빌드/배포 기본 환경 구성 시나리오 및 설정 본문
소스 빌드 및 배포 구성 시나리오
그간 조사한 내용을 바탕으로 Gitlab-jenkins-nexus 간에 이루어 지는 소스 빌드, 패키지 배포 과정을 아래와 같이 구성해 보았다.
Gitlab -> Jekins
① Gitlab Repository -> 젠킨스 연동
소스 코드가 존재하는 Git Repoisotry URL 및 접속 계정 등록
② Gitlab Branch Merge 이벤트 발생 -> Build 트리거(유발)
Gitlabe에 Sub -> Master로 Push 이벤트 발생시 Web hook -> 젠킨스 Build 자동 실행 설정, 이를 위한 Gitlab 연결 Secret Tocken 생성
Jenkins <-> Nexus
③ Nexus Repository (Maven Central Proxy) -> Jenkins : 빌드에 필요한 Dependency Library 다운로드
Jenkins 서버 > Maven > Settings.xml 관련 설정 - 미러사이트를 Nexus 서버로 지정하고, 접근을 위한 계정 정보를 세팅함
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
<servers>
<!-- nexus repository 별 접근 계정 설정 -->
<!-- nexus dependency library & plugin download repository -->
<server>
<id>maven-public</id>
<username>admin</username>
<password>********</password>
</server>
<!-- repository download mirror server setting to Nexus -->
<mirrors>
<mirror>
<id>maven-public</id>
<name>maven-public</name>
<url>http://192.168.60.22:8081/repository/maven-public/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
</settings>
Jenkin 서버 > Workspaces > Project 별 Pom.xml 파일 관련 설정 - 선택 사항, 프로젝트 별로 Reposistory를 다르게 지정할때 활용
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
......
<!---- dependency and plugin download repository settings ---->
<repositories>
<repository>
<id>maven-group</id>
<url>http://192.168.60.22:8081/repository/maven-central/</url>
</repository>
</repositories>
</project>
④ Jenkins : Maven 빌드 수행 (Goal : Clean Deploy)
⑤ Jenkins 서버 -> Nexsus Hosted Repository에 등록
Jenkins 서버 > Maven > Settings.xml 관련 설정 - 패키지 배포를 위핸 접근 계정 정보 세팅
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
<servers>
....
<!-- nexus repository source build upload repository -->
<server>
<id>MavenTest-releases</id>
<username>admin</username>
<password>*******</password>
</server>
<!-- nexus repository source build upload repository -->
<server>
<id>MavenTest-snapshots</id>
<username>admin</username>
<password>*******</password>
</server>
</servers>
....
</settings>
Jenkin 서버 > Workspaces > Project 별 Pom.xml 파일 관련 설정 - 배포할 Repository 경로 지정
<project ..>
...
<!---- build package upload(deploy) repository settings ---->
<distributionManagement>
<repository>
<id>MavenTest-releases</id>
<url>http://192.168.60.22:8081/repository/MavenTest-releases/</url>
</repository>
<snapshotRepository>
<id>MavenTest-snapshots</id>
<url>http://192.168.60.22:8081/repository/MavenTest-snapshots/</url>
</snapshotRepository>
</distributionManagement>
</project>
Jenkins -> WAS(Tomcat) 배포
⑥ 빌드 후 war 파일 생성
⑦ 지정된 Context path에 War 파일 배포
참고 사이트
https://emptyreset.tistory.com/94?category=843131
Nexus 3 - Maven 연동 하기
Using Nexus 3 as Your Repository – Part 1: Maven Artifacts (sonatype.com) Using Nexus 3 as Your Repository – Part 1: Maven Artifacts This article is the first in a three part series by one of our..
emptyreset.tistory.com
maven 설치 및 eclipse 연동
1. 다운로드 maven을 다운로드하기 위해 사이트에 접속 하고 좌측 메뉴에서 Download를 선택합니다. https://maven.apache.org/download.cgi 좀 가까운 곳에서 다운로드 하려면 우측에서 mirror사이트를 선택 하
copycoding.tistory.com
CentOS7에 gitlab ce 설치하기
리눅스 서버로 많이 사용하는 CentOS 7에 gitlab을 설치하는 방법을 Posting하려고 합니다. 먼저 공식 사이트에서 제공하고 있는 설치방법을 따르는 것을 권장합니다. 저는 그 가이드를 따라 설치하면
ux.stories.pe.kr
https://emptyreset.tistory.com/82?category=843131
Jenkins RPM 설치 관련 링크
chhanz.github.io/devops/2020/04/16/install-jenkins/ [Devops] Jenkins 설치(RPM/WAR) 목차 Gitlab-CE 설치 Jenkins 설치 Nexus Repository Manager 설치 Jenkins RPM 설치 RPM 을 이용한 설치 과정입니다. 참고..
emptyreset.tistory.com
https://emptyreset.tistory.com/81?category=843131
젠킨스 오프라인 설치 (젠킨스 플러그인 오프라인 설치)
parkhyeokjin.github.io/devops/2019/10/07/MavenOfflineInstall.html 젠킨스 오프라인 설치 (젠킨스 플러그인 오프라인 설치) 나의 업무 환경은 인터넷망과 업무망이 구분 되어있고 서버의 경우 인아웃바운드의..
emptyreset.tistory.com
위키독스
온라인 책을 제작 공유하는 플랫폼 서비스
wikidocs.net
'Linux > CI & CD' 카테고리의 다른 글
Gradle, Github, Eclipse 연동, 간단 프로젝트 생성/빌드 (0) | 2021.02.19 |
---|---|
Centos 7 Sonatype Nexus Repository 설치하기 (0) | 2021.02.17 |
Jenkins Setting(2) > New Item (프로젝트) 생성 하기 (0) | 2021.02.15 |
Jenkins Setting(1) > Global Tool Configuration (0) | 2021.02.15 |
Jenkins 삭제 하기 (0) | 2021.02.15 |