jenkins搭建+創(chuàng)建maven項(xiàng)目

一. 概述

jenkins是企業(yè)最常用的代碼自動(dòng)構(gòu)建發(fā)版工具, 網(wǎng)上也很多關(guān)于jenkins的文章, 但很少比較詳細(xì)的教程, 本文將從jenkins搭建到創(chuàng)建一個(gè)maven項(xiàng)目實(shí)現(xiàn)遠(yuǎn)程部署,一步到位. jenkins實(shí)現(xiàn)遠(yuǎn)程部署只要清楚流程是很簡(jiǎn)單的,無非就是拉取代碼->打包->上傳包到目標(biāo)服務(wù)器->執(zhí)行腳本啟動(dòng)

二. 安裝jenkins

2.1 docker安裝jenkins

# 拉取鏡像 jenkinsci/blueocean
docker pull jenkinsci/blueocean

# 運(yùn)行
docker run -d -p 8080:8080 -p 50000:50000 --name jenkins jenkinsci/blueocean

2.2 jenkins初始化

2.2.1. 打開網(wǎng)址localhost:8080

image.png

2.2.2. 獲取密碼

# 進(jìn)入容器
docker exec -it jenkins bash
# 查看密碼
cat /var/jenkins_home/secrets/initialAdminPassword

2.2.3. 安裝插件

image.png

image.png

2.2.4. 創(chuàng)建一個(gè)用戶

image.png

2.2.5. 示例配置

image.png

2.2.6. 就緒

image.png

2.3 全局工具配置

image.png

image.png

2.3.1 配置jdk

容器自帶jdk, 進(jìn)入容器查看jdk路徑

# 進(jìn)入容器
docker exec -it jenkins bash
# 查看jdk路徑
echo $JAVA_HOME
image.png

2.3.2 配置maven

image.png

注意:填完記得點(diǎn)[保存]

2.4 安裝插件

image.png

主要安裝3個(gè)插件,搜索插件名勾選,然后點(diǎn)擊下載

下載完點(diǎn)擊重啟

image.png

三. 配置遠(yuǎn)程服務(wù)器ssh連接

image.png

image.png

四. 創(chuàng)建一個(gè)maven項(xiàng)目

4.1 創(chuàng)建項(xiàng)目

image.png

image.png

4.2 配置git分支參數(shù)

image.png
image.png

4.3 配置代碼倉庫

image.png

4.4 配置maven打包命令

image.png

clean package -Dmaven.prod.skip=true -e

4.5 配置jar包上傳指令

image.png

image.png

注意,jenkins打包好的文件在/var/jenkins_home/workspace/目錄下,進(jìn)入容器可以查看

${JOB_NAME} jenkins的預(yù)設(shè)參數(shù),值為項(xiàng)目名

4.6 配置遠(yuǎn)程服務(wù)器執(zhí)行命令啟動(dòng)服務(wù)

image.png

image.png

附: 啟動(dòng)sheel腳本: jar.sh

set +e

source /etc/profile

PROJECT_NAME=$(cd "$(dirname "$0")";pwd)
jar_file=$(ls ${PROJECT_NAME}/*.jar)
mkdir -p ${PROJECT_NAME}/dump

if [ `echo ${jar_file} | xargs -n1 | wc -l` -eq 1 ];then
    APP_NAME=${jar_file}
else
    echo 'ERR: Twee fles pakkette word nie toegelaat nie.'
    exit 2
fi

# help
usage() {
    echo "Usage: sh jre.sh [start|stop|restart|status]"
    exit 1
}

# check pid
is_exist() { 
    pid=`ps -ef | grep $APP_NAME | grep java | grep -v grep | awk '{print $2}' `
    if [ -z "${pid}" ]; then
        return 1
    else
        return 0
    fi
}

# Start
start() {
    is_exist
    if [ $? -eq "0" ]; then
        echo "${APP_NAME} is already running. pid=${pid} ."
    else
        cd ${PROJECT_NAME}
        nohup java -jar $APP_NAME  &>logs.out & 
    fi
}

# Stop
stop() {
    is_exist
    if [ $? -eq "0" ]; then
        kill -9 $pid
    else
        echo "${APP_NAME} is not running"
    fi
}

# Status
status() {
    is_exist
    if [ $? -eq "0" ]; then
        echo "${APP_NAME} is running. Pid is ${pid}"
    else
        echo "${APP_NAME} is not running."
    fi
}

# Restart
restart() {
    stop
    start
}

# run
case "$1" in
    "start")
        start
        ;;
    "stop")
        stop
        ;;
    "status")
        status
        ;;
    "restart")
        restart
        ;;
    *)
        usage
        ;;
esac


4.6 done

image.png

五. 發(fā)版測(cè)試

5.1 構(gòu)建

image.png

5.2 選分支開始構(gòu)建

image.png

5.3 查看構(gòu)建日志

image.png
image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容