Jenkins流水线部署Maven项目

使用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即可。

相关推荐
小码ssim8 分钟前
IntelliJ IDEA 2024.3(Ultimate Edition)免费化教学
java·ide·intellij-idea
qq_4298565715 分钟前
解决 idea windows 设置maven离线模式之后,maven继续请求远程仓库
java·maven·intellij-idea
ChinaRainbowSea23 分钟前
4. Spring Cloud Ribbon 实现“负载均衡”的详细配置说明
java·spring boot·后端·spring·spring cloud·ribbon·负载均衡
坟头种朵喇叭花28 分钟前
LinkedList与链表
java·数据结构·链表
清酒伴风(面试准备中......)29 分钟前
计算机网络HTTP——针对实习面试
java·笔记·网络协议·计算机网络·http·面试·实习
honvin_29 分钟前
常用List工具类(取交集、并集等等)
java·list·集合·工具类·list交集、并集工具类
2401_8532757331 分钟前
LinkedList 源码分析
java·面试·职场和发展
子非吾喵1 小时前
IDEA在设置里边更改了JDK版本没生效问题解决
java·ide·intellij-idea
陆业聪1 小时前
基本数据类型:Kotlin、Dart (Flutter)、Java 和 C++ 的比较
java·flutter·kotlin
程序修理员1 小时前
2个word内容合并
java·word