05-DevOps-Jenkins自动拉取构建代码2
通过前面的操作,已经成功完成了源代码的打包工作,具体操作参见下面的文章:
05-DevOps-Jenkins自动拉取构建代码-CSDN博客
验证打包文件
验证打包后的文件是否存在,进入到Jenkins的工作目录中,找到对应的jar包(192.168.1.10)
cd /var/jenkins/workspace/myproject-ci/target
可以看到生存的jar文件。
到这一步,成功把源代码从本地上传到了Gitlab仓库,然后通过Jenkins自动从Gitlab仓库中拉取到代码,再自动打包。这一系列动作都已经完成。
现在只是生成了jar包,但是还没有对外进行暴露,外部无法访问这个程序,下一步就要把这个jar包发布和启动。
在前面已经提到,计划把应用部署到192.168.1.11服务器上(当前服务器为192.168.1.10)。
配置远程服务器地址
在Jenkins中配置远程服务器的地址(把192.168.1.11配置进去)
找到系统配置
在页面最下面,找到SSH,点击新增
在新增页面中,点击高级选项
填写完成,点击测试,出现success,表示可以连通。
点击应用、保存
配置自动发布
当把程序打包后的文件,传输到应用服务器后,让其自行完成完发布的工作。
找到构建后操作(Post-build Actions)
选择通过SSH这个选项(如果没有这个选项,说明前面的SSH的插件没有安装好)
配置相关参数,让Jenkins能够通过SSH登录完成远程服务器的登录,然后进行文件传输和启动工作。
参数说明:
target/*.jar:将当前工作区生成的jar包文件,发送到远程服务器中。
pkill java :杀掉名称为Java的进程
nohup java -jar /usr/local/target/myproject.jar & sleep 1:使用nohup方式启动jar包,1秒后退出。
注意:
需要在高级选项中,找到Exec in pty 并勾选。
点击应用、保存
再次构建Jenkins,查看控制台输出日志:
看到success,表示构建成功。
验证传输文件
在应用服务器上(192.168.1.11),查看由Jenkins传输过来的jar文件
执行 netstat -tulpn 命令查看当前占用的端口号
可以看到,java程序占用的81端口。
访问应用程序
在浏览器输入192.168.1.11:81,访问springboot的应用。
这里需要配置防火墙,允许81端口被访问。
sudo firewall-cmd --zone=public --add-port=81/tcp --permanent
sudo firewall-cmd --reload
当看到这个内容的时候,Jenkins构建已经成功完成了整个流程,皆大欢喜。
复盘
回顾一下,到这一步为止,已经完成的事情:
1.搭建了GitLab代码仓库,将本地代码提交到仓库。【由GitLab完成】
2.从GitLab代码仓库中克隆代码到Jenkins的工作区【由Jenkins完成】
3.完成代码的编译和测试代码【由Jenkins完成】
4.打包Spring Boot应用【由Jenkins完成】
5.通过SSH传输,将Spring Boot应用最终的jar包,上传到应用服务器(192.168.1.11)【由Jenkins完成】
6.在应用服务器(192.168.1.11)中完成jar包的启动。【由Jenkins完成】
CI/CD流程现在已经正常工作了!!!
相关文章:
05-DevOps-Jenkins自动拉取构建代码2
通过前面的操作,已经成功完成了源代码的打包工作,具体操作参见下面的文章: 05-DevOps-Jenkins自动拉取构建代码-CSDN博客 验证打包文件 验证打包后的文件是否存在,进入到Jenkins的工作目录中,找到对应的jar包&#x…...
ESP32之OTA固件升级流程,基于VSCode环境下的ESP-IDF开发,基于阿里云物联网平台MQTT-TLS连接通信(附源码)
目录 1.创建产品和设备 2.准备工作 2.1 获取基础工程 2.2 基本知识概述 2.2.1 OTA升级流程 2.2.2 主题和数据格式 (1)设备上报版本号 ①请求主题(设备 -> 阿里云): ②响应主题(阿里云->设备…...
【秣厉科技】LabVIEW工具包——OpenCV 教程(20):拾遗 - imgproc 基础操作(下)
文章目录 前言imgproc 基础操作(下)8. 霍夫检测9. 滤波与模糊10. 拟合与包围 总结 前言 需要下载安装OpenCV工具包的朋友,请前往 此处 ;系统要求:Windows系统,LabVIEW>2018,兼容32位和64位。…...
kafka发送消息,同时支持消息压缩和不压缩
1、生产者配置 nacos中增加配置,和公共spring-kafka配置字段有区分 需要发送压缩消息时,使用该配置类发送即可 import org.apache.kafka.clients.producer.ProducerConfig; import org.springframework.beans.factory.annotation.Autowired; import or…...
AOSP世界时间的更新
在 AOSP(Android Open Source Project)中,世界时间的更新主要涉及设备时区数据的管理和更新,以确保设备能够正确显示全球各地的时间。AOSP 依赖 IANA 时区数据库(也称为 tzdata)来提供时区规则和世界时间数…...
Python + 链上数据可视化:让区块链数据“看得懂、用得上”
Python + 链上数据可视化:让区块链数据“看得懂、用得上” 区块链技术的透明性和去中心化特性,使得链上数据成为金融、供应链、NFT 以及 DeFi 领域的关键参考。可是,对于普通用户而言,链上数据往往晦涩难懂,难以直接利用。那么,如何利用 Python 提取、分析并直观展示链上…...
方德桌面操作系统V5.0-G23 vim无法复制粘贴内容
1.修改 Vim 配置文件 rootyuhua-virtualmachine:/etc/docker# sudo vim /usr/share/vim/vim82/defaults.vim 2.在第82行找到set mousea行,将其为set mouse-a。如果文件中没有set mousea,则修改添加set mouse-a。 3.保存文件并退出 Vim: 4…...
[linux] vim 乱码
1. 确保终端支持中文 设置终端编码为 UTF-8,运行: echo $LANG如果不是 UTF-8(如 en_US.UTF-8),你可以设置为: export LANG=zh_CN.UTF-8 export LC_ALL=zh_CN.UTF-8 2. 确保 Vim 使用 UTF-8 编码 打开 .vimrc 或输入以下命令: :set encoding=utf-8 :set fileencodin…...
天洑参加人工智能校企产学研及人才对接活动——走进南京大学人工智能学院
4月15日,人工智能校企产学研及人才对接——走进南京大学人工智能学院活动在南京大学成功举办。此次活动由江苏省人工智能学会、南京大学人工智能学院主办,江苏省工业和信息化厅党组成员、副厅长池宇,南京大学副校长周志华出席。江苏省工业和信…...
33、单元测试实战练习题
以下是三个练习题的具体实现方案,包含完整代码示例和详细说明: 练习题1:TDD实现博客评论功能 步骤1:编写失败测试 # tests/test_blog.py import unittest from blog import BlogPost, Comment, InvalidCommentErrorclass TestBl…...
《AI大模型应知应会100篇》第22篇:系统提示词(System Prompt)设计与优化
第22篇:系统提示词(System Prompt)设计与优化 摘要 在大语言模型(LLM)应用中,系统提示词(System Prompt)是控制模型行为的核心工具之一。它不仅定义了模型的身份、角色和行为规范,还直接影响输…...
【KWDB 创作者计划】_深度学习篇---松科AI加速棒
文章目录 前言一、简介二、安装与配置硬件连接驱动安装软件环境配置三、使用步骤初始化设备调用SDK接口检测设备状态:集成到AI项目四、注意事项兼容性散热固件更新安全移除五、硬件架构与技术规格核心芯片专用AI处理器内存配置接口类型物理接口虚拟接口能效比散热设计六、软件…...
【Quest开发】在虚拟世界设置具有遮挡关系的透视窗口
软件:Unity 2022.3.51f1c1、vscode、Meta XR All in One SDK V72 硬件:Meta Quest3 仅针对urp管线 参考了YY老师这篇,可以先看他的再看这个可能更好理解一些:Unity Meta Quest MR 开发(七):使…...
Spark on K8s 在vivo大数据平台的混部实战
作者:vivo 互联网大数据团队- Qin Yehai 在离线混部可以提高整体的资源利用率,不过离线Spark任务部署到混部容器集群需要做一定的改造,本文将从在离线混部中的离线任务的角度,讲述离线任务是如何进行容器化、平台上的离线任务如何…...
Mac配置Java的环境变量
刚拿到手的Mac mini M4如何去设置java的环境变量? 第一步: 首先,你先下载好intelliJ IDEA,然后在里面自带的jdk列表里选择你自己想要使用的jdk的版本以及供应商。 下面是我自己使用的jdk版本以及供应商: 第二步&am…...
RPCRT4!OSF_CCONNECTION::OSF_CCONNECTION函数分析之创建一个RPCRT4!OSF_CCALL--RPC源代码分析
RPCRT4!OSF_CCONNECTION::OSF_CCONNECTION函数分析之创建一个RPCRT4!OSF_CCALL 第一部分: 1: kd> p RPCRT4!OSF_CCONNECTION::OSF_CCONNECTION0x167: 001b:77bf6957 393dec35c877 cmp dword ptr [RPCRT4!gfRPCVerifierEnabled (77c835ec)],edi 1: kd> …...
6、事件处理法典:魔杖交互艺术——React 19 交互实现
一、魔杖启灵:交互魔法的本质 "记住,巫师们!魔杖的每一次挥动都是与魔法世界的对话,"麦格教授的魔杖在空中划出金色事件流,"React 19的useTransition如同时间转换器,让麻瓜设备也能感知魔杖…...
.net C# 使用Epplus库将Datatable导出到Excel合并首列
最近处理大量数据,需单独导出到首列名称一致的excel,Epplus免费,效率spire高,在Nuget添加Epplus。因为特殊原因,不能使用数据库,只能由数据源导出到excel;最终处理39万行输出到单独的excel文件时间2分钟。 一、EPPlus 基础介绍 EPPlus 是一个开源的 .NET 库(适用…...
【gpt生成-总览】怎样才算开发了一门编程语言,需要通过什么测试
开发一门真正的编程语言需要经历完整的设计、实现和验证过程,并通过系统的测试体系验证其完备性。以下是分阶段开发标准及测试方法: 一、语言开发核心阶段 1. 语言规范设计(ISO/IEC 标准级别) 语法规范:BNF/…...
网络417 路由转发2 防火墙
路由器临时开启路由转发功能 查看节点a网关ip 节点b网关 1.开启路由器路由转发功能。 2.配置到节点a 节点b的网络。 节点a因为和节点b不在同一网段,计划通过网关直达 网关就是中间节点路由器的ip地址 再Ping另一个 计划节点bping节点c ping不通 是因为 修改了…...
HttpSessionAttributeListener 的用法笔记250417
HttpSessionAttributeListener 的用法笔记250417 以下是关于 HttpSessionAttributeListener 的用法详解,涵盖核心方法、应用场景、实现步骤及关键注意事项,帮助您有效监听会话(HttpSession)中属性的动态变化: 1. 核心功…...
Spring Boot 实现 Excel 导出功能(支持前端下载 + 文件流)
🧠 一、为什么用 EasyExcel? 在 Java 开发中,操作 Excel 的框架主要有: Apache POI(经典但慢、内存占用大) JXL(老旧不维护) Alibaba EasyExcel(阿里出品,…...
Java动态批量生成logback日志文件
应用场景举个例子: 当我一个服务需要启动n个端口,来监听n个来源的数据,并且处理数据逻辑一致;但是我想要它们的日志分开文件夹来打印,从而更好的分析问题,那么就可以用我下面提供的模版了; 动态…...
从原理到实践:NFS复杂故障处理方法论
#作者:孙德新 文章目录 一、nfs使用概述二、疑难故障现象描述三、原理分析四、解决方案五、优化服务器资源配置:六、故障案例总结七、故障预防建议八、nfs优化方法 一、nfs使用概述 NFS(Network File System)是一种分布式文件系…...
SAP FI固定资产报错:在折旧范围 30 中的业务与帐面净值规则冲突 - 解决方法
一、问题描述 消息号 AA660 诊断 由于和在区域30中检查的净帐面价值规则相反,不能过帐该凭证。 过程 当输入比例值时会出现此错误。比例值超过过帐金额,如 100 的后续资本化,但该金额的比例折旧为 110。请检查输入项并做需要的更正。 二、…...
Go语言从零构建SQL数据库(8):执行计划的奥秘
从SQL语句到高效查询:执行计划的奥秘 想象你是一位旅行者,想从北京到上海。你告诉导航软件你的目的地(类似SQL查询),但导航软件需要为你规划具体路线——是走高速公路还是国道?是选择最短距离还是最省时间…...
UNet 改进(12):UNet with ECA (Efficient Channel Attention) 网络
详解 下面将详细解析这个实现了ECA注意力机制的UNet网络代码。 1. 代码概述 代码实现了一个带有Efficient Channel Attention (ECA)模块的UNet网络架构。 UNet是一种常用于图像分割任务的编码器-解码器结构网络,而ECA模块则是一种轻量级的通道注意力机制,可以增强网络对重…...
关于 AI驱动的智慧家居、智慧城市、智慧交通、智慧医疗和智慧生活 的详细解析,涵盖其定义、核心技术、应用场景、典型案例及未来趋势
以下是关于 AI驱动的智慧家居、智慧城市、智慧交通、智慧医疗和智慧生活 的详细解析,涵盖其定义、核心技术、应用场景、典型案例及未来趋势: 一、AI智慧家居 1. 定义与核心功能 定义:通过AI与物联网(IoT)技术&#…...
Windows11-24h2的任务栏时间显示秒 笔记250417
Windows11-24h2的任务栏时间显示秒 笔记250417 打开注册表编辑器 WinR输入 regedit 回车。 修改注册表项 定位到路径: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced右键右侧空白处 → 新建【DWORD (32位)值】→ 命名为 ShowSec…...
机器学习的简单应用
什么是机器学习? 定义: 机器学习(Machine Learning, ML) 是人工智能(AI)的一个子领域,其核心是 通过算法让计算机从数据中自动学习规律,并基于这些规律对新数据做出预测或决策…...
双 Token 与 单 Token 优缺点
双Token与单Token认证机制对比 在Web应用开发中,身份认证和授权是保障系统安全的核心环节。随着技术演进,基于Token的认证机制逐渐取代传统Session方案,而双Token与单Token架构的选型争议也日益成为开发者关注的焦点。本文将从技术原理、优缺…...
第五章 SQLite数据库:6、SQLite 常用语法1
SQLite Insert 语句 SQLite 的 INSERT INTO 语句用于向数据库的某个表中添加新的数据行。 语法 INSERT INTO 语句有两种基本语法,如下所示: INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)] VALUES (value1, value2, value3,...…...
JVM考古现场(二十二):降维打击·用二向箔优化内存模型
"警报!三维堆内存正在经历二维化坍缩!" 我腰间的玄铁令突然震动,在蜀山剑派的量子剑阵中投射出诡异的曼德博分形——这是三体文明发动降维打击的铁证! 楔子:二向箔奇点降临 昆仑镜监控日志: // …...
eclipse常用快捷键
Eclipse 是一款功能强大的 Java 集成开发环境(IDE),熟练掌握其快捷键可以显著提高开发效率。下面是一些常用的 Eclipse 快捷键分类介绍: 编辑相关快捷键 操作快捷键说明内容辅助Alt /调出代码提示和自动补全功能,根…...
TAS(Thin-Agent服务)的先决条件与安装指南
TAS(Thin-Agent服务)的先决条件与安装指南 2.1 支持的操作系统 TAS支持以下操作系统环境: Windows 服务器 • Windows Server 2008 R2 SP1 • Windows Server 2012 R2 • Windows Server 2016 Linux 发行版 • Red Hat Enterprise Linux (RHE…...
无线uniapp调试设备
创作灵感来自某篇博客 uniapp安卓手机无线真机调试教程_uniapp无线真机调试-CSDN博客...
TAS启动与卸载
3. 启动TAS(Thin-Agent服务) TAS在安装完成后通常会自动启动,并在系统重启时自启。如需手动启动,请按以下步骤操作:  3.1 在Windows上启动TAS 1. 打开 Windows服务管理器: ◦ 按下 Win R&…...
Oracle测试题目及笔记(多选)
所有题目来自于互联网搜索 在以下概要文件的陈述中,哪两个是正确的? (D 和 E) A. 概要文件不能被用来为账户加锁 B. 概要文件不能被用来控制资源使用 C. 数据库管理员可以使用概要文件更改用户密…...
定制化突围:遨游防爆手机的差异化竞争策略
在石油、化工、矿山等危险作业场景中,随着工业智能化与安全生产需求的升级,行业竞争逐渐从单一产品性能的比拼转向场景化解决方案的深度较量。遨游通讯以九重防爆标准为技术底座,融合多模稳控系统与全景前瞻架构,开辟出"千行…...
c#清理释放内存
虽然c#具有内存管理和垃圾回收机制,但是在arcobjects二次开发嵌入到arcgis data reviewet还会报内存错误。需要强制清理某变量内存方法如下: 1设置静态函数ReleaseCom函数 public static void ReleaseCom(object o) { try{System.Runtime.InteropServices.Marsh…...
从入门到精通【MySQL】 JDBC
文章目录 📕1. 什么是JDBC📕2. JDBC的使用原理📕3. 使用JDBC具体步骤✏️3.1 标题获取MySQL驱动包并修改pom.xml文件✏️3.2 建立数据库连接✏️3.3 创建Statement✏️3.4 执行SQL语句✏️3.5 处理返回结果✏️3.6 释放资源和关闭连接 &#…...
Sigfox技术|独特的运营模式 + 超窄带技术 + 非授权频谱
在物联网(IoT)通信技术的快速发展中,低功耗广域网(LPWAN)成为了推动智能设备连接的重要基础技术之一。作为LPWAN中的一种专有通信协议,Sigfox以其低功耗和广覆盖的特点脱颖而出,在物联网应用中占…...
【Dify 前端源码解读系列】MDX 让 API 文档焕发生机
什么是 MDX? MDX 是一种强大的文档格式,它允许在 Markdown 内容中使用 JSX。这意味着你可以在 Markdown 的简洁语法中嵌入交互式组件,使文档不再局限于静态内容。MDX 完美地将 Markdown 的简单与 JSX 的灵活性结合在一起,特别适合需要丰富交互体验的文档场景。 MDX 的优势…...
docker能用来干什么的
最近项目像简快部署docker,但是发现源被隔离,暂时先记下,以后有机会再研究。 下面摘抄的网文网址如下:Docker能用来干什么的 ?_超级码客_海量程序员面试题库 | 笔试题库 | 面试求职考试神器 docker能用来干什么的 docker能用来做…...
dispaly: inline-flex 和 display: flex 的区别
display: inline-flex 和 display: flex 都是 CSS 中用于创建弹性盒子布局(Flexbox)的属性值,但它们之间有一些关键的区别,主要体现在元素如何在页面上被渲染和它们对周围元素的影响。 主要区别 1,块级 vs 行内块级 d…...
AI Agent系列(九) -Data Agent(数据分析智能体)
AI Agent系列【九】 前言一、Data Agent场景二、Data Agent核心因素2.1 数据源2.2 大模型2.3 应用及可视化 三、Data Agent应用场景 前言 Data Agent就是在大模型基础上构建一个数据分析的智能体,是一种基于人工智能技术,特别是大模型技术的数据分析智…...
【工具】视频翻译、配音、语音克隆于一体的一站式视频多语言转换工具~
Krillin AI 是全能型音视频本地化与增强解决工具。这款简约而强大的工具,集音视频翻译、配音、语音克隆于一身,支持横竖屏格式输出,确保在所有主流平台(哔哩哔哩,小红书,抖音,视频号,…...
api护照查验-GO国内护照查验接口-身份安全卫士
在全球化浪潮汹涌的当下,跨境电子商务蓬勃发展,国际旅游持续升温,留学热潮也未曾减退。在这些跨越国界的活动背后,护照作为国际旅行的关键凭证,其真伪核验的重要性愈发凸显。护照查验接口,宛如一颗璀璨的新…...
在 Tailwind CSS 中优雅地隐藏滚动条
在开发中,我们经常需要隐藏滚动条但保持滚动功能,这在构建现代化的用户界面时很常见。 本文将介绍两种在 Tailwind CSS 项目中实现这一目标的方法,方便同学们记录和查阅。 方法一:使用 tailwind-scrollbar-hide 插件 这是一种更…...
【C++】深入浅出之继承
目录 继承的概念及定义继承的定义继承方式和访问限定符protected与private的区别 默认继承方式继承类模板基类和派生类对象赋值兼容转换继承中的作⽤域(隐藏关系)相关面试题⭐ 派生类的默认成员函数⭐构造函数拷贝构造赋值重载析构函数 继承与友元继承与静态成员继承的方式菱形…...