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

原文地址:https://www.cnblogs.com/zhuyan521/p/13038180.html