Jenkins流水线部署Maven项目

news2024/11/18 9:45:26

使用Jenkins的流水线功能,构建部署Java Maven项目,步骤很简单但是不少细节需要注意。

一、安装

Jenkins的安装步骤和流程就不具体描述,这里主要介绍一下安装时要注意的几个问题。

1、Jenkins尽量安装最新的几个版本,否则安装完成后在Jenkins页面安装插件的过程中会频频报错,很多插件都只支持最新几个版本的Jenkins,除非手动下载旧版本的插件手动安装,但是这样会非常麻烦。

2、目前Jenkins最新的几个版本需要jdk17,如果服务器或者虚机上的jdk不是jdk17并且不能重装jdk的情况,可以使用docker来安装Jenkins。

3、插件问题,Jenkins本身功能很少,或者说Jenkins只是一个插件集成工具,安装完成后需要安装很多插件才能正常使用。例如:git插件、jdk插件、Maven插件、ssh插件等等。


二、插件安装和配置

Jenkins构建Maven项目的大致流程原理如下:
通过git拉取远程仓库的源码(需要git插件并配置远程git仓库访问凭证) —> 执行Maven构建命令编译、打包项目(需要jdk、Maven插件并配置) —> 发送打包好的jar到需要部署的远程服务器上—> 执行远程服务器上的启动命令或者脚本(需要ssh插件并配置远程服务器的用户名密码)。这些步骤都需要对应的插件支持。

2.1 插件安装:点击系统管理-》插件管理-》Available plugins,输入需要安装的插件,插件名称这里就不细说了,网上到处都是。

2.2 jdk、Maven安装配置:点击系统管理-》全局工具配置 即可进入配置页面,按要求填写即可。

值得注意的是:拿jdk来举例,安装jdk有2种方式,自动安装和手动安装,如果选择自动安装,Jenkins一般会在执行流水线过程中自动去安装你勾选版本的jdk。

一般建议手动安装,安装方式也很简单,下载好对应版本的jdk,解压到指定目录即可,然后在配置页面填写安装路径。可以安装多个版本的jdk然后按需使用,不需要配置环境变量。

Maven安装配置也是一样,可自动安装和手动安装,如果手动安装:下载安装包,解压到指定目录,如果在页面配置对应的路径即可。同样可以安装多个,然后配置流水线的时候按需选择使用。


配置Maven的settings文件路径。

2.3 git安装配置:选择自动安装即可。

2.4 git凭证配置:点击系统管理-》凭证管理

填写git仓库的用户名密码即可,用于拉取git上的项目代码。

2.5 ssh配置:点击系统管理-》系统管理-》系统配置

可配置多个,后面配置流水线过程中按需选择使用。


 

三、流水线配置
 

注意:如果某些功能没有,那就是缺少插件,网上搜索一下相关插件名称,在插件安装页面搜索安装,安装后重启Jenkins即可。


如果已经有配置好的流水线,可以使用复制功能复制后再按需修改。

填写基本配置参数

参数化构建,选择分支构建
该功能需要安装一个插件(GitHub Branch Source)

选择合适的参数,这里选择通过分支来构建,配置完成后,可选择指定分支来构建项目。

参数化构建的高级配置

配置好后效果如下:
可选择对应的分支或tag构建

有没有发现,在分支前面有前缀(refs/heads/),可以使用正则表达式过滤掉,表达式:refs/heads/(.*),相对于去掉前缀。

配置编译项目需要的jdk版本

源码管理配置
        告诉Jenkins你的项目代码在哪里


build构建配置
指定pom文件,指定Maven构建命令


Post Steps构建后步骤配置

选择(Run only if build succeeds)构建成功后才能进行下一步。

表示构建成功后把文件发送到目标服务器并执行相关命令。如果需要,可以配置多个目标服务器,集群部署就需要配置多个。

ssh server详细配置

最后点击保存即可。

注意:如果某些功能没有,那就是缺少插件,网上搜索一下相关插件名称,在插件安装页面搜索安装,安装后重启Jenkins即可。

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

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

相关文章

GO语言核心30讲 实战与应用 (第二部分)

原站地址:Go语言核心36讲_Golang_Go语言-极客时间 一、sync.WaitGroup和sync.Once 1. sync.WaitGroup 比通道更加适合实现一对多的 goroutine 协作流程。 2. WaitGroup类型有三个指针方法:Wait、Add和Done,以及内部有一个计数器。 (1) Wa…

从零开始搭建Ubuntu CTF-pwn环境

下面就将介绍如何从零搭建一个CTF-pwn环境(由于学习仍在进行,故一些环境如远程执行环境还没有搭建的经历,如今后需要搭建,会在最后进行补充) 可以在ubuntu官方网站上下载最新的长期支持版本:(我下载的是22.04版本) h…

【研发日记】Matlab/Simulink避坑指南(十二)——Initialize Function执行Bug

文章目录 前言 背景介绍 问题描述 分析排查 解决方案 总结归纳 前言 见《研发日记,Matlab/Simulink避坑指南(七)——数据溢出钳位Bug》 见《研发日记,Matlab/Simulink避坑指南(八)——else if分支结构Bug》 见《研发日记,Matlab/Simuli…

uni-app(四):原生插件开发(Android)

原生插件开发 原生插件开发module1.创建模块2.解决报错3.修改依赖4.编写插件代码5.添加插件配置6.引入模块7.调用插件代码8.运行 component1.创建模块2.解决报错3.修改依赖4.编写插件代码5.添加插件配置6.引入模块7.调用插件代码8.运行 原生插件开发 主要分为两类扩展: Module:…

UE4 3D文字自动换行

效果:3D文字超过5位自动换行 1.随意输入一段字符串测试,创建string临时变量,用于迭代存储字符串 2.当字符串遍历至第“换行长度”(我这里是5)位时,附加一次空行

修改ollama模型文件下载位置

修改ollama模型文件下载位置。你如果不改这个东西,所有的模型文件都会下到c盘,土豪随意。 这里修改环境变量: OLLAMA_MODELS将这个环境变量设置为你想存放的路径。然后重启电脑!

AI大模型探索之路-训练篇20:大语言模型预训练-常见微调技术对比

系列篇章💥 AI大模型探索之路-训练篇1:大语言模型微调基础认知 AI大模型探索之路-训练篇2:大语言模型预训练基础认知 AI大模型探索之路-训练篇3:大语言模型全景解读 AI大模型探索之路-训练篇4:大语言模型训练数据集概…

javaFor循环-打印九九乘法表

虽然所有循环结构都可以用while或者do...while表示,但java提供了另一种循环语句--for循环,使一些循环结构变得简单。for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构。 先写第一列: 运行结果&#xf…

uni-appH5Android混合开发三 || uni-app调用Android原生方法的三种方式

前言: 关于H5的调用Android原生方法的方式有很多,在该片文章中我主要简单介绍三种与Android原生方法交互的方式。 uni-app跨平台框架介绍和快速入门 uni-app跨平台框架介绍和快速入门 一、H5方法调用android原生方法 H5 Android开发规范官方文档&#…

stm32开发三、GPIO

部分引脚可容忍5V,容忍5V的意思是:可以在这个端口输入5V的电压,也认为是高电平 但是对于输出而言,最大就只能输出3.3V,因为供电就只有3.3V 具体哪些端口能容忍5V,可以参考一下STM32的引脚定义 不带FT的,就只…

Java通过百度地图API获取定位-普通IP定位

项目中有一个登录邮箱提醒的功能,需要根据IP地址获取定位信息,从而更好地提示用户账号登录的所在地。为此,花费了一些时间来实现这个功能。 在CSDN搜索了一下,发现关于获取定位的文章说明都不够详细,于是决定自己创作一…

CAP与BASE分布式理论

一、分布式理论 1.CAP理论 CAP理论是说对于分布式数据存储,最多只能同时满足一致性(C,Consistency)、可用性(A, Availability)、分区容忍性(P,Partition Tolerance&…

编程式导航

目录 一、问题引入 二、基本跳转 1.path路径跳转(简易方便) 2.name命名路由跳转(适合path路径长的场景) 三、路由传参 1.path路径跳转传参 (1)query传参 (2)动态路由传参 2.…

揭秘VSCode魔法工具箱:HTML5 CSS3超强插件集合 + Css Reset与Normalize.css的终极对决

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 ✍HTML5、CSS3常用的vscode插件🍎1 HTML 标签同步重命名– Auto…

每日一题1:从表中创建DataFrame

本文通过一道题来对创建DataFrame知识点进行拓展,方便以后直接调用。下面先对知识点进行介绍: 在Python中,使用pandas库创建DataFrame有多种方法,这里列举几种常见的创建方式: 一、常见创建方式 1. 从二维列表创建 …

Android之给Button上添加按压效果

一、配置stateListAnimator参数实现按压效果 1、按钮控件 <Buttonandroid:id"id/mBtnLogin"android:layout_width"match_parent"android:layout_height"48dp"android:background"drawable/shape_jfrb_login_button"android:state…

融知财经:期货和现货的区别是什么?哪个风险大?

期货和现货在交易对象等方面存在明显的区别。期货交易是一种衍生金融工具&#xff0c;主要用于价格发现、风险管理和投机&#xff0c;而现货交易则是商品和服务的实际买卖。在选择进行期货交易还是现货交易时&#xff0c;投资者需要根据自己的需求和市场情况来决定。 期货和现货…

如何访问远程MySQL数据库服务器?

访问远程MySQL数据库服务器是一项常见的任务&#xff0c;它允许我们在不同的地点通过网络连接到MySQL服务器&#xff0c;并进行数据库管理和数据处理操作。我们将重点介绍一种名为【天联】的组网技术&#xff0c;该技术提供了一系列优势&#xff0c;使远程访问MySQL数据库服务器…

javac编译web项目中的src

对于单个文件的且不引用其他类文件的java源码用javac编译大家都很熟悉即 javac hello.java, 服务器未安装idea&#xff0c;现在在服务器里面直接编译src目录 1 idea项目结构如下 2 web目录为最终部署的代码 WEB-INF下面没有 classes 目录 3 使用javac 编译src javac -encod…

Nachi那智不二越机器人维修技术合集

一、Nachi机械手维护基础知识 1. 定期检查&#xff1a;定期检查机器人的各个部件&#xff0c;如机械手伺服电机、机器人减速器、机械臂传感器等&#xff0c;确保其运行正常。 2. 清洁与润滑&#xff1a;定期清洁Nachi工业机器人表面和内部&#xff0c;并使用合适的润滑油进行润…