当前位置: 首页 > news >正文

Jenkins构建 Maven项目(微服务)并自动发布

前面讲了docker 安装Jenkins和gitlab代码管理工具,接下来我们讲一下Jenkins怎么构建 Maven项目。

1. 首先Jenkins配置下面3中工具类
首先是在本地安装三个jenkins自动配置相关的工具

1.1 JDK
由于我们使用docker来启动jenkins,其自带有jdk,因此不需要再下载JDK,查看其容器携带的config.v2.json可发现,jdk路径为:

 
路径为:/opt/java/openjdk
1.2 Git 

安装git:apt-get install git

路径为:/usr/bin/git
1.3 Maven
 

解压后设置maven 的下载路径和下载源                           
 设置maven的环境路径 

 

上面全部准备好了,要安装maven插件,git插件

接着安装git客户端设置账号。这里不做介绍了。

2. 配置gitlab访问Jenkins的权限

进入jenkins容器内部,生成ssh key

 保存后,我们在gitlab上分别创建组,角色,账号,项目。

这里我们创建一个springboot 的maven项目:

 然后提交到仓库:

 2. 配置Jenkins的环境和创建构建项目

分别配置maven的setting.xml路径,jdk路径,git路径,maven路径。

  3. 配置Jenkins访问git的凭证

   

 接着配置gitlab api访问token:

1.gitlab 设置jenkins 访问的token:

2.gitlab 生成第三方访问的令牌:

点击创建令牌,会生成一个token访问令牌串。

3.jenkins的凭证管理添加gitlab的刚才上面生成的token访问令牌串

配置好了之后,我们可以验证一下,看看是否正常:

当然,我们可以配置gitlab的一些全局变量:

定义变量

当 GitLab 通过插件触发构建时,会根据 GitLab 发送的 JSON 有效负载设置各种环境变量。您可以在整个作业配置中使用这些。可用的变量是:

gitlabBranch

获取提交到 gitlab 仓库的当前分支名,如:main

gitlabSourceBranch

当用户合并分支时,获取要合并的 gitlab 源分支名,如:main

gitlabActionType

获取当前 gitlab 操作类型,如:NOTEPUSHMERGE

gitlabUserName

获取提交到 gitlab 仓库的用户名称,如:mavendemo 

gitlabUserUsername

获取提交到 gitlab 仓库的用户用户名

gitlabUserEmail

获取提交到 gitlab 仓库的用户邮箱地址,如:huage@gmain.com

gitlabSourceRepoHomepage

获取提交到 gitlab 源仓库地址,如:http://192.168.33.10/devop/mavendemo.git

gitlabSourceRepoName

获取提交到 gitlab 源仓库名,如:mavendemo 

gitlabSourceNamespace

获取提交到 gitlab 源仓库的命名空间,如:GitLab Instance

gitlabSourceRepoURL

获取提交到 gitlab 源仓库的 URL 地址,如:http://192.168.33.10/devop/mavendemo.git

gitlabSourceRepoSshUrl

获取提交到 gitlab 源仓库的 SSH URL 地址,如:9922@192.168.33.10:devop/mavendemo.git

gitlabSourceRepoHttpUrl

获取提交到 gitlab 源仓库的 HTTP URL 地址,如:http://192.168.33.10/devop/mavendemo.git

gitlabMergeRequestTitle

获取合并分支请求时的标题,如:Update hello.sh

gitlabMergeRequestDescription

获取合并分支请求时的描述信息,如:Update hello.sh

gitlabMergeRequestId

获取合并分支请求时的 ID,如:7

gitlabMergeRequestIid

获取合并分支请求时的 I ID,如:7

gitlabMergeRequestState

获取合并分支请求的状态

gitlabMergedByUser

获取合并分支的用户名

gitlabMergeRequestAssignee

获取合并分支请求时的受让人

gitlabMergeRequestLastCommit

获取合并分支请求时的源分支最后的 commit id

gitlabMergeRequestTargetProjectId

获取合并分支请求时的目标项目 ID

gitlabTargetBranch

当用户合并分支时,获取要合并的 gitlab 目标分支名,如:test

gitlabTargetRepoName

获取提交到 gitlab 目标仓库名,如:Test

gitlabTargetNamespace

获取提交到 gitlab 目标仓库的命名空间,如:GitLab Instance

gitlabTargetRepoSshUrl

获取提交到 gitlab 目标仓库的 SSH URL 地址,如:9922@192.168.33.10:devop/mavendemo.git

gitlabTargetRepoHttpUrl

获取提交到 gitlab 源仓库的 HTTP URL 地址,如:9922@192.168.33.10:devop/mavendemo.git

gitlabBefore

gitlabAfter

gitlabTriggerPhrase

获取触发 gitlab 构建 Jenkins 的语句

  4. 创建maven项目:

 

点击下一步即可。

 分别配置上面的步骤即可。

接下来我们提交代码:

这个时候我们发现已经开始构建了:

 

 

可以看到gitlab代码自动推到jenkins后自动构建发版。

 我们通过浏览器地址来访问看看结果:

 可以看到已经成功了!后面接着讲其定时任务触发,轮询的方式来构建。

相关文章:

Jenkins构建 Maven项目(微服务)并自动发布

前面讲了docker 安装Jenkins和gitlab代码管理工具,接下来我们讲一下Jenkins怎么构建 Maven项目。 1. 首先Jenkins配置下面3中工具类 首先是在本地安装三个jenkins自动配置相关的工具 1.1 JDK 由于我们使用docker来启动jenkins,其自带有jdk,…...

简单易用的多功能图床Picsur

什么是 Picsur ? Picsur 是一款易于使用、可自行托管的图片分享服务,类似于 Imgur,并内置转换功能。支持多种格式的图片,包括 QOI、JPG、PNG、WEBP(支持动画)、TIFF、BMP、GIF(支持动画&#xf…...

数据库-查询语句习题

SELECT Sname 姓 名,year of birth: 出生年,YEAR(GETDATE())-Sage BIRTHYEAR,LOWER(SNAME) SNAME --起别名 没有特殊字符不需要引号,有特殊字符要加引号;别名(解释作用显示给用户看)用空格或as连接 FROM STUDENT; --消除重复行 DI…...

进程间通信以及线程的同步互斥机制

1.进程间通信机制 常用的六种通信机制: 管道、消息队列、共享内存、信号灯集、信号、Socket 管道(Pipe)和无名管道(匿名管道): 管道是一种半双工的通信方式,数据只能单向流动,通常…...

优思学院|做车企的质量工程师转行跳槽能干嘛?

前言 质量工程师,是现代制造业和服务业中不可或缺的重要角色。他们负责制定和执行提高产品质量和优化业务流程的战略。这不仅涉及设立质量标准、开发测试系统,还包括记录生产过程中的问题并找到解决方案。尤其在汽车行业,由于对质量的高度要…...

ctfshow-web入门-命令执行(web53-web55)

目录 1、web53 2、web54 3、web55 1、web53 这里的代码有点不一样,说一下这两种的区别: (1)直接执行 system($c); system($c);这种方式会直接执行命令 $c 并将命令的输出直接发送到标准输出(通常是浏览器&#xff…...

【INTEL(ALTERA)】make: nios2-swexample-create:未找到命令

目录 说明 解决方法 说明 由于外部内存接口英特尔 Stratix 10 FPGA IP 出现问题,如果在 Windows 平台上使用英特尔 Quartus Prime Pro Edition Software v20.4 或更早版本的"使用软Nios处理器进行片上调试"选项,编译Nios II 片上处理器调试…...

一周刷爆leetcode!(b站视频)

文章目录 一、排序思想的题目二、使用步骤1. 一、排序思想的题目 跟着b站一周刷爆leetcode这个视频开始刷一下leetcode的题目 进行一下记录啥的 二、使用步骤 1. 315. 计算右侧小于当前元素的个数 代码如下: 写了一下暴力解法,没有通过 使用归并排序…...

1.xshell传不了文件输出0000如何解决.....2.k8s中metalLB文件内容

xshell传不了文件输出0000如何解决 centos版本 1,因为没有工具下载即可 yum -y install lrzszk8s中metalLB文件内容 2.metalLB文件内容 cat metallb-native.yaml apiVersion: v1 kind: Namespace metadata:labels:pod-security.kubernetes.io/audit: privilegedpod-securit…...

01- ES6语法

1.ES6相关概念 1.1 什么是ES6 1.1.1 简介 ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版。 ES6 主要是为了解决 ES5 的先天不足,比如 JavaScript 里并没有类的概念,但是目前浏览器的 Ja…...

STM32MP135裸机编程:配置RCC,修改主频到1GHz

0 工具准备 STM32CubeMX v6.11.1 STM32CubeIDE v1.15 STM32CubeProgrammer v2.16.0 STM32MP13xx参考手册 STM32MP13勘误手册 STM32MP135AD数据手册 正点原子stm32MP135开发板 1 确认时钟源 本例使用的时钟源均由外部晶振提供,分别是24MHz的HSE、32.768KHz的LSE。原…...

观察 jvm 运行时数据区内存大小(native memory tracking)

jvm 运行时数据区 jvm 运行时数据区包括且不限于以下几个部分: 堆(heap): 用于存储对象实例和数组。堆内存的分配和释放由垃圾回收器进行管理。方法区(method area): 用于存储类的信息、静态变量、常量等。jdk 8 后方法区位于 metaspace。虚拟机栈(vm stack): 用于存储方法的…...

【论文阅读】-- 时间空间化:用于深度分类器训练的可扩展且可靠的时间旅行可视化

Temporality Spatialization: A Scalable and Faithful Time-Travelling Visualization for Deep Classifier Training 摘要1 引言2 动机3 问题定义4 方法论4.1 时空复合体4.2 复数约简 5 实验6 相关工作7 结论参考文献 摘要 时间旅行可视化回答了深度分类器的预测是如何在训练…...

Windows系统部署本地SQL_Server指引

Windows系统部署本地SQL_Server指引 此指引文档环境为Windows10系统,部署SQL_Server 2019为例,同系列系统软件安装步骤类似。 一、部署前准备; 下载好相关镜像文件;设备系统启动后,将不必要的软件停用,避…...

Aptos Builder Jam 亚洲首站|议程公布,无限畅想 Aptos 生态未来

作为一个新兴的 Layer1 公链,Aptos 自诞生之日起的理想便是 “A Layer 1 for everyone” 当 Web3 深陷熊市阴影之时,Aptos 奋力为开发者找到了全新的技术路径,正有 200 项目正在开发,并且已有大量 DeFi 项目落实部署工作&#xff…...

Vue3使用component动态展示组件

前言: 最近在研究gitHub中的一个项目并将与自己之前完成的项目进行结合,其中有一个功能就是需要使用根据不同的字段,渲染不同的组件,查阅资料发现可以使用component完成这个功能,在实现的过程中也会遇见一些坑&#x…...

嵌入式中间件_2.嵌入式中间件的分类

1.中间件的分类 中间件的范围十分广泛,针对不同的应用需求涌现出了多种各具特色的中间件产品。因此,在不同的角度或不同的层次上,对中间件的分类也会有所不同。 根据IDC在1998年对中间件进行的分类,把中间件分为终端仿真/屏幕转换…...

论文精读——KAN

目录 1.研究背景 2.关键技术 2.1 原始公式 2.2 KAN结构 2.3 缩放定律 3.技术扩展 4.模型效果 5.相关讨论 6.总结 文章标题:《KAN: Kolmogorov–Arnold Networks》 文章地址: KAN: Kolmogorov-Arnold Networks (arxiv.org)https://arxiv.org/a…...

全国产城市轨道交通运营公安AI高清视频监控系统

方案简介 城市轨道交通运营公安高清视频监控系统解决方案针对运营部门和公安部门的安保需求,选用华维视讯的各类前端和视频编解码、控制产品,通过统一平台提供视频监控服务和智能应用,满足轨道交通运营业主客运组织和抢险指挥的需求&#xff…...

python连接mysql数据库、FastAPI、mysql-connector-python

方法工具一、FastAPI 建议使用fast api中的pymysql pip3 install fastapi pip3 install pydantic pip3 install "uvicorn[standard]" pip3 中的3是 Python 3 版本的包管理器命令,用于安装和管理 Python 3 版本的第三方库。在某些系统中,同时…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

【2025年】解决Burpsuite抓不到https包的问题

环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...

鸿蒙(HarmonyOS5)实现跳一跳小游戏

下面我将介绍如何使用鸿蒙的ArkUI框架,实现一个简单的跳一跳小游戏。 1. 项目结构 src/main/ets/ ├── MainAbility │ ├── pages │ │ ├── Index.ets // 主页面 │ │ └── GamePage.ets // 游戏页面 │ └── model │ …...

基于鸿蒙(HarmonyOS5)的打车小程序

1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理

在城市的某个角落,一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延,滚滚浓烟弥漫开来,周围群众的生命财产安全受到严重威胁。就在这千钧一发之际,消防救援队伍迅速行动,而豪越科技消防一体化安全管控平台构建的消防“…...