Windows下Jenkins自动启动jar包

本来以为是挺简单的一件事,没想到折腾了这么久,遇到各种坑,记录一下:

set BUILD_ID=dontkillmyass
set port=9035
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
start /B D:\JDK\jdk-11.0.2\bin\java.exe -jar -Dfile.encoding=UTF-8 D:\jenkins\Home\workspace\Mall\target\mall-0.0.1-SNAPSHOT.jar
powershell -Command "Start-Sleep -Seconds 80"

逐个解释一下各语句以及遇到的坑:

1、set BUILD_ID=dontkillmyass

参考jenkins Process leaked file descriptors-CSDN博客 这篇文档。我这里使用的是Execute Windows batch command这个工具,也遇到同样的问题,加上后就没事了。主要就是“Jenkins默认会在Build结束后Kill掉所有的衍生进程”这句话的描述,导致怎么都起不来jar包。

2、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

用goto写这么别扭(可能还会极端情况下有问题),主要是因为不跳出去的话剩下的循环就会报错,知道jenkins的任务判定为Failure。

3、start /B D:\JDK\jdk-11.0.2\bin\java.exe -jar -Dfile.encoding=UTF-8 D:\jenkins\Home\workspace\Mall\target\mall-0.0.1-SNAPSHOT.jar

要后台运行,只能用start;要把日志打印到console上,要加/B;其他的正常运行即可;

4、powershell -Command "Start-Sleep -Seconds 80"

最后一句,要想等它输出日志多一些看到欢迎logo,就加上时间“硬控”,时髦点说就是“没空硬等”。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/58932.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【网络面试篇】TCP与UDP类

目录 一、综述 1. TCP与UDP的概念 2. 特点 3. 区别 4. 对应的使用场景 二、补充 1. 基础概念 (1)面向连接 (2)可靠的 (3)字节流 2. 相关问题 (1)TCP 和 UDP 可以同时绑定…

DNS(Domain Name System)解析过程

DNS(Domain Name System)解析过程大致如下: 客户端发起请求 当用户在浏览器等应用中输入域名(如www.example.com)时,客户端(如电脑、手机等设备上的浏览器应用)首先会检查自身的缓…

【触想智能】工业平板电脑在智能教育设备上的应用优势分析

随着科技的快速发展,智能教育设备成为现代教育领域的新宠。其中,工业平板电脑作为一种重要的智能教育设备,正逐渐在教育领域得到广泛应用。 工业平板电脑在智能教育设备上的应用具有以下几个优势。 1、工业平板电脑具备便携性。相比传统的教学…

java项目之协力服装厂服装生产管理系统的设计与实现(springboot)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的协力服装厂服装生产管理系统的设计与实现。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: …

华为认证到底管用不?有人说巨坑,有人说不可或缺

华为认证在找工作时确实是个加分项,下面来详细聊聊它在求职路上的好处: 首先,增加竞争力 华为认证是华为推出的专业技能认证,能证明你在华为技术领域的实力。有了这个认证,你在求职市场上的竞争力自然更强&#xff0c…

C语言之写一个修改数组内容的函数

问题代码: 函数ltrim是为了消除buf字符数组中左边空格, memmove函数介绍 如果对c语言指针运用非常熟练的人,结合函数功能就会发现这个代码非常的傻逼,你会发现为什么需要返回,buf不用接收返回值,执行这个函数后buf中的内容就已经…

基于SSM+VUE宠物医院后台管理系统JAVA|VUE|Springboot计算机毕业设计源代码+数据库+LW文档+开题报告+答辩稿+部署教+代码讲解

源代码数据库LW文档(1万字以上)开题报告答辩稿 部署教程代码讲解代码时间修改教程 一、开发工具、运行环境、开发技术 开发工具 1、操作系统:Window操作系统 2、开发工具:IntelliJ IDEA或者Eclipse 3、数据库存储&#xff1a…

Cisco Packet Tracer 8.0 路由器静态路由配置

文章目录 静态路由简介一、定义与特点二、配置与命令三、优点与缺点四、应用场景 一,搭建拓扑图二,配置pc IP地址三,pc0 ping pc1 timeout四,配置路由器Router0五,配置路由器Router1六,测试 静态路由简介 …

代码上线经常出问题 正常吗

代码上线后经常出现问题并不是一个正常现象。虽然软件开发过程中难免会遇到错误和缺陷,但频繁的代码上线问题通常指示了开发、测试或部署流程中的某些不足之处。 以下是一些可能导致代码上线经常出问题的原因,以及相应的改进建议: 代码质量…

MPSK(BPSK/QPSK/8PSK)调制解调的Matlab仿真全套

一、概述 MPSK(BPSK、QPSK、8PSK)等是常用的相位调制方式,本文对数据获取、比特流组织、基带调制、上变频发送、添加噪声、接收下变频、基带解调、数据还原等过程进行仿真。 模块化、通用化设计,将函数分为(1)数据读取转比特流;(2)基带调制【参数控制调制类型】;(…

Python-创建并调用自定义文件中的模块/函数

背景:在Python编程中,我们常常需要创建自己的专属文件,以便帮助我们更高效,快捷地完成任务。那么在Python中我们怎么创建并调用自己文件中的模块/函数呢? 在Python中调用自定义文件,通常是指调用自己编写的Python模块…

CSS 动画:网页设计的动态之美

CSS 动画:网页设计的动态之美 CSS 动画是现代网页设计的重要组成部分,它能够让网页元素动起来,创造出更加生动和吸引人的用户体验。本文将深入探讨 CSS 动画的原理、应用和最佳实践,帮助读者掌握这一强大的网页设计工具。 什么是…

基于STM32的智能窗帘控制系统设计

引言 本项目将基于STM32微控制器设计一个智能窗帘控制系统,用户可以通过按钮或遥控器控制窗帘的开关,并且系统能够根据光照强度自动调节窗帘的开合状态。该项目展示了STM32微控制器在家居自动化中的应用,以及与光照传感器、直流电机和红外接…

鸿蒙ArkTS中的image组件

开发文档很详尽,就在DevEco中的API参考,可以随时调出来进行学习。 在鸿蒙官网也有非常详尽的资料,地址:开发说明-API参考概述 - 华为HarmonyOS开发者 (huawei.com) 这里,就学习image组件的一般用法以及使用SVG图标和字…

opencv 图像预处理

图像预处理 ​ 在计算机视觉和图像处理领域,图像预处理是一个重要的步骤,它能够提高后续处理(如特征提取、目标检测等)的准确性和效率。OpenCV 提供了许多图像预处理的函数和方法,以下是一些常见的图像预处理操作&…

kafka里的consumer 是推还是拉?

大家好,我是锋哥。今天分享关于【kafka里的consumer 是推还是拉?】面试题?希望对大家有帮助; kafka里的consumer 是推还是拉? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在Kafka中,消费者&…

多模态融合:将多种模态数据融合处理的 AI 技术

多模态融合:将多种模态数据融合处理的 AI 技术 一、引言 在当今的科技领域,多模态融合是一个备受关注的研究方向。它旨在将多种不同类型的模态数据,如文本、图像、音频、视频等,进行融合处理,以实现更全面、更深入的…

第7章 利用CSS和多媒体美化页面作业

2.用表格布局页面&#xff0c;利用CSS技术&#xff0c;及添加多媒体&#xff0c;制作并美化“心灵之音”页面。 浏览效果如下&#xff1a; 实例代码如下&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title>心灵…

【NPM】工程化依赖包/库开发 之 基础知识2

补充知识点&#xff1a;模块规范 (及格式) 当下主流模块规范&#xff1a;CommonJS、AMD、UMD、CMD、ESM 模块规范 1. CommonJS 维度内容特点采用同步加载模块&#xff0c;适合在服务器端使用&#xff08;如Node.js&#xff09;。使用require导入模块&#xff0c;使用module.e…

Cisco Packet Tracer 8.0 路由器的基本配置和Telnet设置

文章目录 构建拓扑图配置IP地址配置路由器命令说明测试效果 构建拓扑图 1&#xff0c;添加2811路由器。 2&#xff0c;添加pc0。 3&#xff0c;使用交叉线连接路由器和pc&#xff08;注意线路端口&#xff09;。 4&#xff0c;使用配置线连接路由器和pc&#xff08;注意线路…