Windows下Jenkins部署SpringBoot项目

使用Jenkins打包项目可以避免手动打包上传部署,节省了不少时间,有利于团队开发。我所部署的项目是SpringBoot,版本控制使用的是SVN

Windows下Jenkins的安装详见另一篇文章

Windows安装Jenkins_呆某人的博客-CSDN博客_windows 安装jenkins

设置Maven安装路径

Jenkins面板中选择Maven Jenkins,点击Global Tool Configuration

Windows下Jenkins部署SpringBoot项目_第1张图片

找到Maven安装,新增maven,填入maven的Name和MAVEN_HOME,这里我用的是我本地安装的maven,设置完点击保存即可。

Windows下Jenkins部署SpringBoot项目_第2张图片

安装Subversion和publish-over-ssh

Windows下Jenkins部署SpringBoot项目_第3张图片

这里我已经安装了Subversion Plug-in,没有安装的在可选插件里查找然后安装

Windows下Jenkins部署SpringBoot项目_第4张图片

安装publish-over-sshWindows下Jenkins部署SpringBoot项目_第5张图片

进入Manage Jenkins中选择Configure System

Windows下Jenkins部署SpringBoot项目_第6张图片

找到Shell,填入本地的cmd.exe路径,不然会报错

Windows下Jenkins部署SpringBoot项目_第7张图片

 

 

安装PowerShell Server 2016和配置Jenkins中的SSH Server

Powershell Server百度云链接如下:

链接:https://pan.baidu.com/s/1Q2o-83wSD0vTkqSLyGtJaA 
提取码:vfii 

设置开启自启动

Windows下Jenkins部署SpringBoot项目_第8张图片

选择当前Windows用户中的Administrators作为登录账户

Windows下Jenkins部署SpringBoot项目_第9张图片勾选SFTP Features中两个选型,设置D盘的文件夹为上传的主目录

Windows下Jenkins部署SpringBoot项目_第10张图片

 

 在Manage Jenkins中打开Configure SystemWindows下Jenkins部署SpringBoot项目_第11张图片

 找到Publish over SSH

 Windows下Jenkins部署SpringBoot项目_第12张图片

找到SSH Servers,填入Jenkins要部署的那个服务器的别名、主机名IP、登录用户名、远程上传目录

Windows下Jenkins部署SpringBoot项目_第13张图片

 开始配置SpringBoot项目部署流水线

点击新建Item项目

 Windows下Jenkins部署SpringBoot项目_第14张图片

 选择构建一个maven项目,输入项目名称

Windows下Jenkins部署SpringBoot项目_第15张图片

 选择Subversion,因为我用的是svn版本控制,填入项目url,svn的账户密码

Windows下Jenkins部署SpringBoot项目_第16张图片

 在构建环境中勾选Send files or execute commands over SSH after the build runs(在本地构建项目完成后发送文件或者执行命令到远程服务器),选择之前配置好的SSH Server,Transfer Set设置Source files(本地Jenkins的相对目录路径),Remove prefix(去除多余的路径前缀),Remote directory(远程目标上传目录路径)

路径详解:

(C:\Users\Administrator\.jenkins\workspace\测试环境后台包)此路径是Jenkins创建的部署流水线编译打包后的项目路径,(D:\root)此路径是远端服务器上传文件的根目录,也就是Jenkins本地包上传的根目录,Source files可以设置为test\lib\**,remove prefix可以设置为test\lib\,Remote directory设置为\lib,意思就是我要上传C:\Users\Administrator\.jenkins\workspace\测试环境后台包\test\lib文件夹下的所有文件,并且去除test\lib\前缀,最终上传至远端服务器的D:\root\lib目录下。

 Windows下Jenkins部署SpringBoot项目_第17张图片

 Send files or execute commands over SSH after the build runs的另一个功能就是在远端服务器执行命令行,如下图所示执行windows的cmd命令,意思是第一步进入c盘,第二步进入C盘的C:\Users\Administrator\Desktop(也就是windows桌面),第三步执行test.bat脚本

C:
cd C:\Users\Administrator\Desktop
start test.bat

 test.bat(以D:\root\lib下所有jar包为基础,运行D:\root\test.jar,且将运行的项目进程名称命名为test)

@echo off
START "test" java -Dloader.path=D:\root\lib -jar D:\root\test.jar

Windows下Jenkins部署SpringBoot项目_第18张图片

流水线中还有一个功能就是前置步骤,在打包编译前执行的命令,这里也选择Send files or execute commands over SSH,可以对远端服务器执行命令,选择之前配置好的SSH Server,在Exec command中填入如下脚本。(脚本注解:进入C盘,进入C盘的C:\Users\Administrator\Desktop,执行killTest.bat脚本)。

C:
cd C:\Users\Administrator\Desktop
start killTest.bat

 killTest.bat(强制杀死进程名为test的进程)

@echo off
set char=test
echo char : %char%
for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %char%`) do (
		echo find process %%a %%b
		set pid=%%a
		set image_name=%%b
)
echo now will kill process : pid %pid%, image_name %image_name%

taskkill /f /pid %pid%
pause
exit

 Windows下Jenkins部署SpringBoot项目_第19张图片

因为需要编译打包的是maven项目,所以在build模块中填写Goals and options(clean install package -Dmaven.test.skip=true)

Windows下Jenkins部署SpringBoot项目_第20张图片

最后点击保存

 Windows下Jenkins部署SpringBoot项目_第21张图片

 

PS

在部署过程中遇到的问题如下,你如果遇到类似的问题,可以参考下

Jenkins安装maven插件_陈橙橙丶的博客-CSDN博客_jenkins安装maven插件

Jenkins系列教程七:Jenkins安装svn插件_懵懂无知的蜗牛的博客-CSDN博客_jenkins svn插件

Jenkins配置自动部署发送jar包到Windows服务器发版_飞来直去的博客-CSDN博客_jenkins发送文件到windows

Jenkins报错Cannot run program "sh"

Jenkins报错Cannot run program "sh" - 随波追逐 - 博客园

Jenkins安装SSH插件_阿甘兄的技术博客_51CTO博客

Jenkins上传文件到远程服务器失败 - 简书

.bat脚本中通过停止java进程_lsh1587719410的博客-CSDN博客_bat 停止java程序

 

你可能感兴趣的:(持续集成,Jenkins配置流水线,Jenkins)