上一篇搭建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