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

相关推荐
寻星探路1 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
曹牧3 小时前
Spring Boot:如何测试Java Controller中的POST请求?
java·开发语言
爬山算法4 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
kfyty7254 小时前
集成 spring-ai 2.x 实践中遇到的一些问题及解决方案
java·人工智能·spring-ai
猫头虎4 小时前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven
李少兄5 小时前
在 IntelliJ IDEA 中修改 Git 远程仓库地址
java·git·intellij-idea
忆~遂愿5 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能
小韩学长yyds5 小时前
Java序列化避坑指南:明确这4种场景,再也不盲目实现Serializable
java·序列化
仟濹5 小时前
【Java基础】多态 | 打卡day2
java·开发语言
Re.不晚5 小时前
JAVA进阶之路——无奖问答挑战2
java·开发语言