Jenkins自动化部署——后端
前言
运用jenkins部署spring boot后端,windows环境
步骤
1.构建一个Maven项目
输入项目的名称即可,跳转至下一步项目具体配置
2.具体配置
描述内容可自己选择填入,保持构建天数和个数按照个人需求选择
源码管理这部分我使用的是gitee,URL就填写gitee仓库的地址,Credentials中需要加入对应账号,指定分支里面选择你想要构建的仓库的分支
构建触发器方面按照个人需求而定,具体的标准这里不作解释,网上很容易找到相关内容,build periodically 表示在定下的时间下强制执行一次构建,poll SCM指在定下的时间下检查代码有没有更新,如果更新了就构建
pre Step,构建前需要做的事,第一项执行的是mvn打包;第二项是判断端口是否被占用,如果被占用就结束端口相关活动,这里我用来中止前面构建运行的后端;第三项是将打包而成的war文件备份放到桌面上某个文件夹内,具体代码如下:
cd C:\Users\Administrator\.jenkins\workspace\springboot\school
mvn clean package -Dmaven.test.skip=true -Pdruid
@echo off
set port=8080
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (
taskkill /pid %%m /f
exit /b
)
我这里用的是8080端口,可按照自己需要修改
@echo off
set str_time_first_bit="%time:~0,1%"
if %str_time_first_bit%==" " (
set str_date_time=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%
)else (
set str_date_time=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
)
if not exist "C:\Users\Administrator\Desktop\app" md "C:\Users\Administrator\Desktop\app"
if exist C:\Users\Administrator\Desktop\app\school-0.0.1-SNAPSHOT.war (
if not exist "C:\Users\Administrator\Desktop\app\backup" md "C:\Users\Administrator\Desktop\app\backup"
copy C:\Users\Administrator\Desktop\app\school-0.0.1-SNAPSHOT.war C:\Users\Administrator\Desktop\app\backup\%str_date_time%.war
del C:\Users\Administrator\Desktop\app\school-0.0.1-SNAPSHOT.war
)
cd C:\Users\Administrator\.jenkins\workspace\springboot\school\target
copy *.war C:\Users\Administrator\Desktop\app
Build,构建项目,找到仓库路径下的pom.xml文件所在目录填入,操作填入下面的部分
clean install package
cd C:\Users\Administrator\Desktop\app
set BUILD_ID=dontKillMe
start javaw -jar school-0.0.1-SNAPSHOT.war --server.port=8080
代码后台运行不被关闭
总结
jenkins自动化部署中走了很多弯路,借鉴了网上相关的博客、帖子,第一次尝试去部署所以部分内容可能和多余或者杂乱,有些部分甚至可能每个帖子博客里都拿了一部分,希望对各位有所帮助。