当前位置: 首页 > 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 版本的第三方库。在某些系统中,同时…...

从零构建大模型?斯坦福CS336爆火课程带你闯关,附超全学习资源包!

文章介绍了斯坦福大学CS336《从零开始构建语言模型》课程,该课程借鉴操作系统课程理念,带领学生体验语言模型创建的各个环节,包括数据收集、模型构建、训练和评估。课程内容实践性强,需要较多学习开发时间,适合有一定基…...

Qt图形项事件处理全解析:从mousePressEvent到mouseReleaseEvent的正确姿势

1. Qt图形项鼠标事件处理的核心机制 在Qt框架中处理图形项的鼠标交互,本质上是在和事件传播机制打交道。我刚接触Qt图形视图框架时,也曾被mouseMoveEvent不触发的问题困扰过整整两天。后来才发现,这其实是一套设计精巧的事件处理哲学——只有…...

打开软件就弹出d3dcompiler_43.dll丢失找不到 免费下载修复方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…...

VibeVoice语音合成实战:流式播放+音频下载,打造个性化语音播报系统

VibeVoice语音合成实战:流式播放音频下载,打造个性化语音播报系统 1. 项目概述 VibeVoice-Realtime是微软开源的一款轻量级实时语音合成(TTS)模型,专为需要即时语音反馈的场景设计。这个只有0.5B参数的模型,却能在300毫秒内开始…...

解锁音乐资源聚合新方式:洛雪音乐音源开源工具全解析

解锁音乐资源聚合新方式:洛雪音乐音源开源工具全解析 【免费下载链接】lxmusic- lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/gh_mirrors/lx/lxmusic- 你是否遇到过音乐平台版权分散导致想听的歌曲需要切换多个APP的困扰?是…...

优化 Flutter Web 加载速度的实用技巧

1. 为什么Flutter Web加载这么慢? 第一次用Flutter开发Web应用的朋友,十有八九会被它的加载速度惊到——点开网页后白屏时间长得能泡杯咖啡。这其实和Flutter Web的底层渲染机制有关。Flutter Web默认使用CanvasKit渲染引擎,这个引擎需要动态…...

告别Visio!用Text Flow三分钟搞定纯文本流程图(附实战案例)

用纯文本革命:Text Flow如何三分钟重塑技术文档流程图 在代码注释里直接插入流程图,在Markdown文件中无缝嵌入架构图,无需切换工具就能完成专业图表——这曾是许多开发者的奢望。传统流程图工具如Visio、Draw.io虽然功能强大,但存…...

FlowState Lab创意作品展:从音乐旋律到光影变化的波动艺术

FlowState Lab创意作品展:从音乐旋律到光影变化的波动艺术 1. 波动艺术的新维度 当数据不再只是冰冷的数字,而是化作跳动的音符、流动的光影和变幻的图形,这就是FlowState Lab带来的创意革命。我们最近完成了一系列跨媒介艺术实验&#xff…...

5个技巧让普通鼠标在Mac上秒变专业工具:Mac Mouse Fix深度解析

5个技巧让普通鼠标在Mac上秒变专业工具:Mac Mouse Fix深度解析 【免费下载链接】mac-mouse-fix Mac Mouse Fix - A simple way to make your mouse better. 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 你是否曾为Mac上的鼠标体验感到沮…...

从ReVeal到实战:基于图神经网络的智能漏洞检测技术演进与落地思考

1. 图神经网络在漏洞检测中的崛起 第一次接触代码漏洞检测领域时,我被传统方法的繁琐流程震惊了。记得当时需要手动定义数百条规则来检测缓冲区溢出漏洞,每次遇到新漏洞类型就得加班加点补充规则。直到2018年遇到ReVeal论文,才发现图神经网络…...