zoukankan      html  css  js  c++  java
  • Jenkins部署码云SpringBoot项目

    本文介绍jenkins如何从gitee上clone项目,然后使用maven打包并后台启动。

    1.Jenkins介绍

    Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。 (以上介绍来源于百度百科)

    其实通俗来说,Jenkins就是一个自动化部署项目的工具,帮我省去重复的运维工作。

    2.环境准备

    本文需要如下几个工具:

    • JDK

    • Git

    • Maven

    以上三种就不在这里介绍安装了,这里我贴出我的环境变量配置仅供参考:

    • Jenkins

    我的Jenkins是使用如下方式安装:

    sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
    sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
    sudo yum install jenkins
    

    启动

    service jenkins start
    

    然后访问http://${ip}/8080,可以看到jenkins那个小老头,根据自行配置安装插件,其中密码在这里

    vi /var/lib/jenkins/secrets/initialAdminPassword
    

    以上都在网上有很多,我在博客中也写过,就不在这里废话太多了。

    3.Jenkins工具插件配置

    3.1 插件配置

    个人建议,Jenkins第一次进入推荐安装的插件就默认安装就行,省的还需要后续自己安装,当然,如果自己安装的话需要Maven和Git插件。

    3.2 工具配置

    • JDK

    • Git

    • Maven

    这里就可以用到上面环境准备时需要的截图,这里我也摸索了很久才配置完成。

    4.配置项目

    4.1 构建自由风格的项目

    新建项目,选择构建自由风格的项目,给项目起个名字,然后点击Ok。

    4.2 配置参数化构建过程

    这里我用到了几个参数,因为可能有时需要提前准备好参数在进行构建,如下图:

    • jar_path :本意是准备项目打包后的jar位置,其实这里是Jenkins工作空间
    • spring_profile:这个是读取配置文件前缀,比如dev,test,prod
    • jar_name:jar包名称
    • project_name:项目名称

    4.3 Git配置

    用Git进行将项目Clone下来,配置自己的用户密码,Repository URL配置git地址(这里提供的地址是私密项目,项目没什么特别的,就是简单SpringBoot项目,不用尝试了,用自己项目就可以)

    4.4 配置Build

    这里选择执行Shell,内容如下:

    mvn clean install -Dmaven.test.skip=true
    echo $spring_profile $jar_path $jar_name
    cd /usr/local/shell/
    ./stop.sh $jar_name
    echo "Execute shell Finish"
    ./startup.sh $spring_profile $jar_path $jar_name $project_name
    

    如图:

    在上面执行的Shell里面还用到了两个Shell,分别是stop.sh,实质就是找到jar执行的pid,然后kill,具体内容如下:

    jar_name=${1}
    echo "Stopping" ${jar_name}
    pid=`ps -ef | grep ${jar_name} | grep -v grep | awk '{print $2}'`
    if [ -n "$pid" ]
    then
       echo "kill -9 的pid:" $pid
       kill -9 $pid
    fi
    

    startup.sh内容如下,具体可以根据情况修改:

    spring_profile=${1}
    jar_path=${2}
    jar_name=${3}
    project_name=${4}
    cd ${jar_path}/${project_name}/target/
    echo ${jar_path}/${project_name}/target/
    echo nohup java -jar ${jar_name} &
    BUILD_ID=dontKillMe nohup java -jar ${jar_name} --spring.profiles.active=${spring_profile} &
    

    5 测试运行

    5.1 运行

    点击运行后,如图所示,刚刚预配置的参数都可以看到并可以修改,这里我们用默认配置好的就可以。

    然后点击运行就可以,当时遇到了一个插曲,我的Maven是安装成功的,但是Jenkins内无法使用,报错mvn:command not found,这里我解决的方式是将mvn命令也指向/usr/bin/mvn,如下:

    ln -s /usr/local/apache-maven-3.5.4/bin/mvn /usr/bin/mvn
    

    访问效果其实就是我的博客,如图所示:

    6 总结

    总体过程坑其实还是很多的,毕竟没有使用过,但是没有什么特别棘手的问题,总是出现不同的问题,有需要可以与我一起交流学习。

  • 相关阅读:
    Soket 连接发送与接收
    Java socket 说明 以及web 出现java.net.SocketException:(Connection reset或者Connectreset by peer:Socket write error)的解释
    oralce 仅配置精简客户端 连接plsql ( 版本需一直,要不都是32要不是都是64)
    struts2令牌,防止重复提交
    hibernate 3.* C3P0配置 以及为什么需要连接池!
    struts2接收参数——域模型、DTO
    JavaScript 键盘event.keyCode值列表大全
    JS操作JSON总结
    JS中typeof与instanceof的区别
    js eval()函数 接收一个字符串,做为js代码来执行。 如: s='var d="kaka"'; 或者s=‘function (code){return code }’;
  • 原文地址:https://www.cnblogs.com/dalaoyang/p/9919595.html
Copyright © 2011-2022 走看看