zoukankan      html  css  js  c++  java
  • springboot+jenkins+git+maven部署

    上一篇搭建jenkins不在赘述。

    安装必要插件

    • Folders
    • OWASP Markup Formatter
    • Build Timeout
    • Maven Integration
    • publish over ssh
    • SSH
    • Git Parameter

    进入jenkins插件管理,在可用插件页面搜索以上插件并下载。

    配置ssh信息

    插件下载完毕之后进入 --系统设置。

    passphrase:虚拟机密码

    如果没有SSH servers 点击新增。

    name:别名(没有特殊意义)

    hostname:虚拟机地址

    username:虚拟机登录用户名

    remote directory:虚拟机根目录

    test Configuration:测试是否可以连接成功 ,success为成功

    配置本地工具

    进入Global Tool Configuration 全局工具配置

    配置本地jdk

    配置本地git

    配置本地maven

    新建一个maven项目

    设置git

    源码管理选择git,输入git仓库地址和选择认证密码

    点击添加,添加凭证。可以选择账号密码也可以选择私钥。

    设置构建触发器
    • Build whenever a SNAPSHOT dependency is built 每当建立SNAPSHOT依赖项时就进行构建
    • 触发远程构建 (例如,使用脚本) 触发远程重建(例如,使用脚本)
    • Build after other projects are built 在其他项目建成后建造
    • Build periodically 定期建立
    • GitHub hook trigger for GITScm polling GitHub钩子触发GITScm轮询
    • Poll SCM 轮询SCM

    这里我选择轮询(每三十分一次)

    轮询的规则点击右边问号。(篇幅太长不截图)

    设置Build

    填入命令

    clean install -Dmaven.test.skip=true -Ptest
    

    设置Post Steps

    依次填入

    • 服务器地址 name:ip
    • 源文件 source files : target/*.jar
    • 删除前缀 remove prefix :target/
    • 远端目录 remote directory :/usr/local/jenkins//(注意这里是双斜杠)
    • 执行命令 exec command :/usr/local/jenkins/startup.sh
    新建startup.sh启动脚本

    /usr/local/jenkins下新建一个startup.sh脚本

    更改权限 : chmod 777 startup.sh

    DATE=$(date +%Y%m%d)
    ## 配置环境变量
    export JAVA_HOME JRE_HOME PATH CLASSPATH
    JAVA_HOME=/usr/local/jdk-11.0.1
    JRE_HOME=$JAVA_HOME/
    PATH=$JAVA_HOME/bin:$PATH
    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    
    ## 注意stu是我的springboot工程名
    DIR=/root/.jenkins/workspace/school/target/stu-0.0.1-SNAPSHOT.jar
    ## jar文件
    JARFILE=stu-0.0.1-SNAPSHOT.jar
    ##如果文件夹backup不存在就新建
    if [ ! -d $DIR/backup ];then
    mkdir -p $DIR/backup
    fi
    ##进入dir文件下
    cd $DIR
    ## 杀掉之前存在的该jar的进程(第一次会有kill 命令的提示,不影响)
    ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9
    
    ## 移动文件
    mv $JARFILE backup/$JARFILE$DATE
    ## 移动到远程目录
    mv -f /usr/local/jenkins//$JARFILE .
    ## 启动jar并输出日志
    java -jar $JARFILE > out.log &
    
    if [ $? = 0 ];then
    sleep 30
    tail -n 50 out.log
    fi
    
    cd backup/
    
    ls -lt|awk 'NR>5{print $NF}'|xargs rm -rf
    

    等待jenkins自动构建(push 代码)或者手动构建

    构建完成

    参考博客:https://blog.csdn.net/qq_35867875/article/details/87178382 ;作者:Mr_zqcheng

  • 相关阅读:
    【Silverlight】汉诺塔游戏,带AI
    Farseer Physics Engine
    解决SilverLight的图片裁剪问题
    【C#】三维立体验证码 (3DCaptcha)
    又一个“众所周知”的DAL层设计BUG
    【C#】性别类
    36进制条码序列号生成器 [更新]
    理想的软件设计标准
    表驱动法概念到实战(一) 原理及基本运用
    Sudoku solver
  • 原文地址:https://www.cnblogs.com/zhuyan521/p/13038180.html
Copyright © 2011-2022 走看看