背景
小公司,作为开发,每天都去给实习生开启一个服务。日子久了感觉有点浪费时间,于是花些时间研究Jenkins,实现自动更新部署服务。
环境
windows 系统 ; 后台框架是springboot ,使用maven打包成jar再用脚本启动。
jenkins配置
准备工作
- 安装直接略过;默认插件安装;
- 必要的几个插件,如果没有安装的话,从插件管理中去下载安装。
Maven Integration : maven插件,用于编译打包。
Subversion : svn插件,用于从svn服务器自动更新工程。
搜索–勾选–下载安装。
- 全局配置
maven及jdk配置。
- 增加全局凭据
增加svn账号,用于从svn更新。
建立项目
- 在首页新建Item,输入项目名称,选择Maven项目。
- 源码管理
录入svn工程地址。
选择svn账号。
- 构建触发器
定时任务设置,表达式是Cron表达式。我这里定时是工作日早上8:40,周六早上9:10。上班时间,大家懂的。
- build
- post steps
启动前先杀死指定端口。
拿来的脚本。
@echo off & setlocal EnableDelayedExpansion
title 杀死端口
for %%a in (8080) do (
set pid=0
for /f "tokens=2,5" %%b in ('netstat -ano ^| findstr ":%%a"') do (
set temp=%%b
for /f "usebackq delims=: tokens=1,2" %%i in (`set temp`) do (
if %%j==%%a (
taskkill /f /pid %%c
set pid=%%c
echo 端口号【%%a】相关进程以杀死
) else (
echo 不是本机占用端口【%%a】
)
)
)
if !pid!==0 (
echo 端口号【%%a】没有占用
)
)
echo 操作完成
exit
最后运行包。
其他
已经稳定运行几周了。