jenkins搭建+创建maven项目

一. 概述

jenkins是企业最常用的代码自动构建发版工具, 网上也很多关于jenkins的文章, 但很少比较详细的教程, 本文将从jenkins搭建到创建一个maven项目实现远程部署,一步到位. jenkins实现远程部署只要清楚流程是很简单的,无非就是拉取代码->打包->上传包到目标服务器->执行脚本启动

二. 安装jenkins

2.1 docker安装jenkins

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

# 运行
docker run -d -p 8080:8080 -p 50000:50000 --name jenkins jenkinsci/blueocean

2.2 jenkins初始化

2.2.1. 打开网址localhost:8080

image.png

2.2.2. 获取密码

# 进入容器
docker exec -it jenkins bash
# 查看密码
cat /var/jenkins_home/secrets/initialAdminPassword

2.2.3. 安装插件

image.png

image.png

2.2.4. 创建一个用户

image.png

2.2.5. 示例配置

image.png

2.2.6. 就绪

image.png

2.3 全局工具配置

image.png

image.png

2.3.1 配置jdk

容器自带jdk, 进入容器查看jdk路径

# 进入容器
docker exec -it jenkins bash
# 查看jdk路径
echo $JAVA_HOME
image.png

2.3.2 配置maven

image.png

注意:填完记得点[保存]

2.4 安装插件

image.png

主要安装3个插件,搜索插件名勾选,然后点击下载

  • Maven Integration (maven插件)
  • Git Parameter (git参数定义插件)
  • SSH2 Easy(远程服务器上传文件及执行脚本插件)
    image.png

下载完点击重启

image.png

三. 配置远程服务器ssh连接

image.png

image.png

四. 创建一个maven项目

4.1 创建项目

image.png

image.png

4.2 配置git分支参数

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/目录下,进入容器可以查看

${JOB_NAME} jenkins的预设参数,值为项目名

4.6 配置远程服务器执行命令启动服务

image.png

image.png

附: 启动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

五. 发版测试

5.1 构建

image.png

5.2 选分支开始构建

image.png

5.3 查看构建日志

image.png
image.png

你可能感兴趣的:(jenkins搭建+创建maven项目)