Net网站开发招聘,襄阳网站建设首选公司哪家好,网站开发天津,北京西站到八达岭长城最快路线一、背景 之前是linux服务器部署的项目#xff0c;现在转为windows服务器部署。jenkins和git都已经部署好了。所以本文只会重点讲Jenkins调用windows服务器bat命令及bat命令的编写概况。 二、详情操作
1、Jenkins调用windows bat文件
首先在Jenkins项目配置高级项目选…一、背景 之前是linux服务器部署的项目现在转为windows服务器部署。jenkins和git都已经部署好了。所以本文只会重点讲Jenkins调用windows服务器bat命令及bat命令的编写概况。 二、详情操作
1、Jenkins调用windows bat文件
首先在Jenkins项目配置高级项目选项-pipeline scipt 填入脚本
pipeline {agent anystages {stage(pull code from gitlab) {steps {git branch: ${branch}, url: gitXXXX.git}}stage(maven clean install) {steps {sh mvn cleansh mvn package}}stage(send file and restart) {steps {sshPublisher(publishers: [sshPublisherDesc(configName: 服务器IP, transfers: [sshTransfer(cleanRemote: false, excludes: , execCommand: call E:\\program\\restart.bat, execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: [, ], remoteDirectory: /program, remoteDirectorySDF: false, removePrefix: target, sourceFiles: target/abc-1.0.0.jar)], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: true)])}}}
}
脚本注意事项 ①替换git项目具体的url ②替换服务器具体的ip ③替换windows下项目具体的jar包路径 remoteDirectory ④替换sourceFiles项abc具体的项目名称
⑤exexCommand:调用windows服务器路径中的bat文件\\是转义windows文件夹分隔符\ 2、编写windows下bat命令文件
echo off
::查找之前的项目是否正在运行 该处的jar包名称要和 start运行处的 jar包名称 保持一模一样
for /F delims %%a in (jps -lv ^| find /i E:\program\abc.jar) do set PID1%%a::如果正在运行则杀掉进程
::注意, %PID1% 等号两边不要加空格, if 后如果跟括号的话, 括号前后要加空格, 否则语法错误
if not %PID1% (
taskkill /f /t /PID %PID1%
)
::休眠7秒
waitfor SomethingThatIsNeverHappening /t 7 2NUL
::删除旧的jar包, 先判断, 如果jar包存在则删除
if exist E:\program\abc.jar del E:\program\abc.jar::从jenkins的工作空间中 复制jar包
copy C:\Users\adminUser\program\abc-1.0.0.jar E:\program\abc.jar::运行 java 程序, 此处jar包名称要和查找进程处的 jar包名称 一模一样
::如果是从nacos中读取配置信息的话, 要添加-Dfile.encodingutf-8, 因为nacos默认是utf8编码, cmd运行默认使用gbk编码, 编码不一致导致配置文件读取错误
java -Dfile.encodingutf-8 -Dhudson.util.ProcessTree.disabletrue -jar E:\program\abc.jar --spring.profiles.activedev E:\program\abc.log 21
exit
注意事项 ①该bat文件如果不是ANSIUTF8格式的话第一行会被转义 不过第一行命令报错的话影响也不大。
②从jenkins推到服务器的jar包路径默认路径我的是C:\Users\adminUser\program\abc-1.0.0.jar 需要改成你自己的路径。
③Jenkins执行该脚本后并不是绿色Success标识但并不影响实际效果。原因是等待java -命令超时。解决方式可在java -前加 start 意为后台执行该命令。而后执行exit退出。但我的服务并没有启动成功如有知晓解决方式还请告知 谢谢。