jenkins安装以及jar部署

Jenkins安装参考 https://blog.csdn.net/qq_31142553/article/details/81193173

目的:实现jenkins自动打包部署jar

Jenkins上安装的插件:

实现思路:

  1. 将所有需要之心的命令全部写在批处理
  2. 将批处理注册为Windows服务
  3. 在Jenkins上直接使用命令调用服务

问题:

1.在Jenkins上使用命令行去执行批处理,随着Jenkins结束批处理也结束

2.在Jenkins 执行start javaw **.jar ,Jenkins正常结束,服务无法启动

尝试过后台运行批处理或运行jar,但依然未解决,所以最终选择以上思路

参考了网上的写法去结束进程,使用端口的方式存在杀掉模糊匹配出的其他进程

以下是结束正在运行的jar脚本

/*
    以下脚本本地测试通过,放置Jenkins执行出现无法结束Java进程
    原因不明,但可以尝试一下
*/

//方式一 使用jar包名字方式结束正在运行的Jar包,运行后可以在命令行使用jps -l 查看到进程

@echo off
setlocal enabledelayedexpansion
for /f "tokens=1" %%a in ('jps -l ^| findstr XXXX.jar') do taskkill /f /pid %%a

//方式二 通过监听端口的方式去结束进程
@echo off
rem 设置监听的端口号
set port=82
echo port : %port%

for /f "usebackq tokens=1-5" %%a in (`netstat -ano ^| findstr %port%`) do (
	if [%%d] EQU [LISTENING] (
		set pid=%%e
	)  
)

if defined str (
	for /f "usebackq tokens=1-5" %%a in (`tasklist ^| findstr %pid%`) do (
		set image_name=%%a
		
		rem 根据进程ID,kill进程
		taskkill /f /pid %pid%
		echo kill进程 pid %pid%
	)
) else (
	echo program not find
) 



1.完整批处理脚本

@echo off

:: 以下注释代码是为了让程序在后台执行,未启用
:: if "%1" == "h" goto begin 
::   mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit 
::   :begin 

set jar_name=XXX-admin
set old_jar=%jar_name%.jar
rem 获取当前时间
set curTime=%date:~0,4%-%date:~5,2%-%date:~8,2%_%time:~0,2%_%time:~3,2%_%time:~6,2%
set new_name=%jar_name%%curTime%.jar



::下面这条命令会等待3秒,并且可以按任意键跳过等待
:: >nul ping 127.1 /3

cd D:\program files\jenkins\workspace\deploy_jar 
if exist %old_jar% (
	
	:: 移动文件 
	move %old_jar% bak_jar 
	
	echo -------------移动文件%old_jar% end-------------
	
	:: 重命名文件
	cd bak_jar
	rename %old_jar% %new_name%
	echo -------------重命名文件%old_jar% to %new_name% end-------------
	
	
) 

cd "D:\program files\jenkins\workspace\XXX-project\XXX-admin\target"

copy %old_jar% "D:\program files\jenkins\workspace\deploy_jar\"
echo -------------复制文件%old_jar% end-------------
	

rem 运行jar
cd D:\program files\jenkins\workspace\deploy_jar

if exist %old_jar% (

	echo -------------运行jar包%old_jar% start-------------
	rem start javaw -jar %old_jar% 
	start /b javaself -jar %old_jar% > start.log
)
echo exit
exit


2.使用winsw将批处理注册为Windows服务参考https://blog.csdn.net/qq_28566071/article/details/80882503

winsw 下载地址 https://github.com/kohsuke/winsw/releases

3.Jenkins上配置,就是启动运行服务

使用命令获取日期相关参考https://blog.csdn.net/u013986802/article/details/72381743#

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值