Jenkins+windows+自由风格+bat+springBoot部署jar

  • jenkins拉取指定分支代码

Jenkins+windows+自由风格+bat+springBoot部署jar_第1张图片

  • 远程触发部署

Jenkins+windows+自由风格+bat+springBoot部署jar_第2张图片

        接口调用【JENKINS_URL/job/spring-b-wmsV3.0/build?token=TOKEN_NAME】 

  • Execute Windows batch command模块创建两个

@echo off
echo '‎更新结束'
net time \\127.0.0.1
cd %WORKSPACE%\wms-parent
echo '‎开始编译'
mvn clean install -Dmaven.test.skip=true
@echo off
::根据端口号关闭指定进程
echo '根据端口号关闭指定进程'
set depDir=D:\spring-b-wmsv3.0
set port=8981
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (
 echo kill the process %%m who use the port 
 taskkill /pid %%m -t -f
 goto q
)
:q
echo '等待3秒结束任务'
::  > null 不输出控制台信息换行
ping 127.0.0.1 -n 3 > null
echo '删除源文件'
del /f %depDir%\wms-entrance-0.0.1-SNAPSHOT.jar %depDir%\wms-entrance-0.0.1-SNAPSHOT.log
ping 127.0.0.1 -n 1 > null
echo '拷贝jar包'
xcopy /y %WORKSPACE%\wms-parent\wms-entrance\target\wms-entrance-0.0.1-SNAPSHOT.jar %depDir%
ping 127.0.0.1 -n 3 > null
echo '启动jar包'
start %depDir%\start.bat
net time \\127.0.0.1
  • 注意在Jenkins中的cmd调用bat执行

        在bat中启动的jar文件生成日志文件要指定文件绝对路径

  • 关于bat启动jar控制台日志生成文件脚本

::cmd语言设置为UTF-8
chcp 65001
@echo off
%1 mshta vbscript:CreateObject("WScript.Shell").Run("%~s0 ::",0,FALSE)(window.close)&&exit
java -jar D:\spring-b-wmsv3.0\wms-entrance-0.0.1-SNAPSHOT.jar > D:\spring-b-wmsv3.0\wms-entrance-0.0.1-SNAPSHOT.log 2>&1 &
exit
  • jenkins解决构建完成后自动杀掉衍生进程

配置环境变量即可

        Manage Jenkins -> Manage Nodes and Clouds -> (节点设置)Node Properties -> Environment variables -> add

配置参数

                key:BUILD_ID

                value:pleaseDontKillMe and it works like a charm(参数顺便填

你可能感兴趣的:(jenkins,spring,boot,jar)