linux中安装部署Jenkins,成功构建springboot项目详细教程
参考别人配置Jenkins的git地址为https,无法连上github拉取项目,所以本章节介绍通过配置SSH地址来连github拉取项目
目录:
1、springboot项目
1.1 创建名为springcloudproject的springboot项目工程
1.2 已将工程上传到github中,github工程名为companyProject(这里随便取)
2、linux环境
2.1 已安装好jdk、maven、git
2.2 配置git
2.3 生成公钥
3、 Github配置
3.1 创建Personal access Token
3.2 生成SSH?Keys
3.3 配置webhook
3.4 复制工程的SSH地址下来,后续用,如图
4、Jenkins安装以及环境文件配置
4.1 安装Jenkins
4.2 Jenkins初始化
4.3 全局配置git和maven
4.4 插件安装
4.5 全局变量设置
5、创建Jenkins任务
5.1 新建任务
5.2 填写任务名
5.3 填写任务配置信息
5.4 构建测试
5.5 查看日志
内容:
1、springboot项目
1.1 创建名为springcloudproject的springboot项目工程
主工程下新建个deploy文件夹,并建test.sh文件,内容为: echo "test ....",如图
1.2 已将工程上传到github中,github工程名为companyProject(这里随便取)
2、linux环境
2.1 已安装好jdk、maven、git
2.2 配置git
执行以下两行命令
git config --global user.name "git账号"
git config --global user.email "git绑定的邮箱"
如图可查看
2.3 生成公钥
执行命令
ssh-keygen -t rsa -C "刚刚设置的邮箱"
三次回车(图中红色框框),可得公钥生成文件路径,如下图
查看公钥,上图中/home/company/.ssh/id_rsa.pub文件
拷贝查看到文件的所有内容,后续使用
3、 Github配置
3.1 创建Personal access Token
3.1.1 打开个人Settings页面
3.1.2 打开Developer Settings 页面
3.1.3 依次点击“Personal access tokens” -> “Tokens(classic)” -> “Generate new token”按钮
3.1.4 勾选如下图两处地方,跟填名称地方就可以了
3.1.5 提交后生成token,复制备份下来
3.2 生成SSH Keys
3.2.1 按照3.1.1步打开Settings页面
3.2.2 依次点击“SSH and GPG keys” -> “New SSH key” 按钮
3.2.3 填信息生成SSH Key
key栏框位置填2.3步获取的公钥
3.3 配置webhook
这步配置,当代码push上github的时候,会自动通知Jenkins进行构建(需要配合5.3.2步)
3.3.1 打开工程的Settings -> Webhooks -> Add webhook按钮
3.3.2 添加webhook信息
如下图,把地址ip改为自己部署Jenkins的服务地址就好了,后面的“/github-webhook/”要加上
3.4 复制工程的SSH地址下来,后续用,如图
4、Jenkins安装以及环境文件配置
4.1 安装Jenkins
https://jenkins.io/download 到Jenkins的官网自行下载所需的war包
启动命令:java -jar jenkins.war –-httpPort=8080
然后访问http://xx.xxx.xx.xx:8080即可
我这里是部署在阿里云服务器,所以要放开8080端口
4.2 Jenkins初始化
打开浏览器页面,输入http://xx.xxx.xx.xx:8080
复制此路径
在shell中执行 cat /root/.jenkins/secrets/initialAdminPassword
查看初始密码,然后复制粘贴到页面登陆,选择建议的插件,然后重新设置用户名密码
4.3 全局配置git和maven
4.3.1 打开“系统管理”
4.3.2 点击“全局工具配置”,配置git和maven的安装路径
如果git路径不知道,可以通过命令whereis git查看
4.4 插件安装
4.4.1 打开“系统管理” -> “插件管理”
4.4.2 搜索安装Gitlab插件和Maven Integration插件
Gitlab插件:当gitlab有push时触发jenkins拉取代码和将构建状态发送回GitLab Maven Integration:用来简化建造Maven工程.
安装完插件后可以重启一下,直接在网址后边拼上/restart 可以重启Jenkins
4.5 全局变量设置
4.5.1 打开“系统管理” -> “系统配置”
4.5.2 往下找到“github服务器”,点击添加,然后在API URL框填上“https://api.github.com”
4.5.3 点击凭据下的“添加”按钮
类型选择 “Secret text”
Secret项填 3.1.5步生成的token,最后两个不用填
5、创建Jenkins任务
5.1 新建任务
5.2 填写任务名
5.3 填写任务配置信息
5.3.1 选择“GitHub项目”,url为自己项目的url
5.3.2 Triggers选择(这个看自己需求)
5.3.3 流水线配置
流水线配置有两种,这里都介绍下
5.3.3.1 Pipeline script(整章节是这种配置,此配置进行拉取github代码,并mvn打包java工程)
内容如下
pipeline {agent anystages {stage('Checkout') {steps {//进行拉取代码git branch: 'dev', credentialsId: '661ea938-9146-4001-bba6-ffa195311c51', url: 'git@github.com:DaQinDiGuo011/companyProject.git'}}stage('Compile-Package') {steps {//进行编译打包sh 'mvn -Dmaven.test.failure.ignore=true clean package'}}}
}
5.3.3.2 Pipeline script from SCM(此选项是拉取github代码,然后执行sh脚本,这部只是为了介绍用法)
Repository URL填写3.4步中的地址
Credentials选择下一步操作添加的用户密码
我使用的是dev分支,所以新增了个dev
gitweb地址填写自己项目的浏览器地址
点击添加Credentials
用户密码为自己登录github上的用户密码
脚本路径,添加完保存
该路径为1.1步里工程目录下的deploy/test.sh脚本
5.4 构建测试
点击构建,开始把项目pull到工作空间,并编译打包
5.5 查看日志
点击执行的任务里,点击“Console Output”查看日志,可到部署Jenkins服务器路径查看Jenkins拉取下来的项目并编译的日志,日志最后可看到工作空间地址
相关文章:

linux中安装部署Jenkins,成功构建springboot项目详细教程
参考别人配置Jenkins的git地址为https,无法连上github拉取项目,所以本章节介绍通过配置SSH地址来连github拉取项目 目录: 1、springboot项目 1.1 创建名为springcloudproject的springboot项目工程 1.2 已将工程上传到github中,g…...

AI开发利器:Anaconda
在Python开发过程中,不同的项目可能会依赖不同版本的Python以及各种不同版本的库。比如,项目A可能依赖Python 3.8和某个特定版本的numpy、TensorFlow和PyTorch,而项目B可能需要Python 3.9以及另一个版本的numpy库。如果直接在系统中安装Pytho…...

java网络编程--基于TCP协议的网络编程
Scoket介绍 利用 TCP 协议进行通信的两个应用程序是有主次之分的, 一个是服务器程序,一个是客户端程序, 两者的功能和编写方法不太一样, 其中 ServerSocket 类表示 Socket 服务器端,Socket 类表示 Socket 客户端。 服…...
PageHelper新发现
PageHelper 背景解决reasonablepageSizeZero 背景 今天发现了一个很有趣的现象,接手一个很老的项目springmvc项目、使用PageHelper分页实现常见的后端接口分页功能。但是发现当页码参数大于实际的页码数时、正常不应该返回数据,但是目前确一直返回数据不…...
Redis 数据结构和使用详解(带示例)
Redis 支持的主要数据结构及其对应操作命令的详细解释,结合具体使用场景和示例: 1. 字符串(String) 用途:存储文本、数值或二进制数据,适用于缓存、计数器等。 常用命令: SET key value&#x…...

深度解读 Chinese CLIP 论文:开启中文视觉对比语言预训练
目录 论文概述1.论文摘要2.论文脑图3.论文创新3.1模型构建3.2训练方法3.3数据构建3.4部署优化 4.模型架构 论文解析1. 引言2. 方法2.1数据说明2.2预训练方法2.2.1模型初始化方法2.2.2两阶段预训练方法 2.3预训练细节2.3.1模型初始化2.3.2第一阶段预训练2.3.3第二阶段预训练2.3.…...

SpringBoot 2 后端通用开发模板搭建(异常处理,请求响应)
目录 一、环境准备 二、新建项目 三、整合依赖 1、MyBatis Plus 数据库操作 2、Hutool 工具库 3、Knife4j 接口文档 4、其他依赖 四、通用基础代码 1、自定义异常 2、响应包装类 3、全局异常处理器 4、请求包装类 5、全局跨域配置 补充:设置新建类/接…...

【Oracle专栏】sqlplus显示设置+脚本常用显示命令
Oracle相关文档,希望互相学习,共同进步 风123456789~-CSDN博客 1.内容概述 本文主要针对oracle 运维中常用知识点进行整理,包括: 1)sqlplus模式下,为了方便查询设置相应的行宽、列宽、行数。…...

DeepSeek 助力 Vue3 开发:打造丝滑的页眉(Header)
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...

JVM线程分析详解
java线程状态: 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。 线程对象创建…...

【备赛】点亮LED
LED部分的原理图 led前面有锁存器,这是为了防止led会受到lcd的干扰(lcd也需要用到这些引脚)。 每次想要对led操作,就需要先打开锁存器,再执行操作,最后关闭锁存器。 这里需要注意的是,引脚配置…...
【音视频】编解码相关概念总结
NALU RTP PS流 三者总体关系 NALU在RTP中的应用:视频流的RTP传输通常将NALU作为基本的单元进行传输。每个RTP包携带一个或多个NALU,这些NALU包含了视频编码数据。RTP协议通过其头部信息(如时间戳、序列号等)帮助接收端重新排列和…...

Python爬虫(四)- Selenium 安装与使用教程
文章目录 前言一、简介及安装1. Selenium 简介2. Selenium 安装 二、Selenium 基本使用1. 导入Selenium2. 启动浏览器3. 打开网页4. 获取页面标题5. 关闭浏览器6. 完整示例代码 三、Selenium WebDriver1. 简介2. 基本操作2.1 启动浏览器2.2 关闭浏览器2.3 打开网页2.4 关闭当前…...

Node.js项目启动流程以及各个模块执行顺序详解
Node.js项目启动流程以及各个模块执行顺序的问题。首先,我需要仔细阅读并理解我搜索到的资料,从中提取关键信息,然后综合这些信息组织成一个结构化的回答。 首先,根据我搜索到的资料都详细描述了Node.js的启动流程,涉及…...

各种类型网络安全竞赛有哪些 网络安全大赛的简称
本文是对入门学习的一些概念了解和一些常规场景记录 1.CTF(capture the flag)是夺旗赛的意思。 是网络安全技术人员之间进行攻防的比赛。 起源1996年DEFCON全球黑客大会,替代之前真实攻击的技术比拼。 (DEFCON极客大会诞生1993,…...
浅谈人工智能与深度学习的应用案例研究
人工智能与深度学习的应用案例研究 人工智能(AI)与深度学习技术正以惊人的速度渗透到社会生活的各个领域,从医疗健康到艺术创作,从金融风控到城市治理,其应用案例不断突破传统边界。以下是近年来具有代表性的六大应用方向及具体案例: 一、医疗健康:精准诊断与药物研发 医…...

vue2版本elementUI的table分页实现多选逻辑
1. 需求 我们需要在表格页上实现多选要求,该表格支持分页逻辑。 2. 认识属性 表格属性 参数说明类型可选值默认值data显示的数据array——row-key行数据的 Key,用来优化 Table 的渲染;在使用 reserve-selection 功能与显示树形数据时&…...

AI数字人技术源码开发分享:革新短视频营销策略
集星幻影的AI数字人分身系统是一款融合了先进人工智能技术的综合性短视频营销解决方案。该系统整合了形象克隆、声音克隆、AI数字人分身生成、智能剪辑及文案创作等功能,旨在为用户打造虚拟人物资产并提供AI驱动的多模态交互服务。以下是该系统的主要功能概述&#…...

实验环境搭建集锦(docker linux ros2+强化学习环境+linux上单片机串口调试)
为了记住一些实验环境配置开的文章,边配置边记,免得之后忘了。 Docker环境搭建 yay -S docker //下载docker docker info //查看docker配置 sudo systemctl start docker //系统配置打开docker sudo systemctl enable docker //系统配置后台开启d…...
sql调优之数据库开发规范
数据库 数据库开发规范 也可用于PostgreSQL以及兼容PG的数据库 通用命名规则 【强制】 本规则适用于所有对象名,包括:库名、表名、列名、函数名、视图名、序列号名、别名等。 【强制】 对象名务必只使用小写字母,下划线,数字&…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...

Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...