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

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

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

相关文章

elixir V2测试网验证器一键部署脚本

实际收益 1、服务器环境 服务器系统:centos 7或者ubuntu 20.04(以上) CPU:2核 内存:4G 硬盘:30G ssd 网络:可靠的 100Mbit 互联网 2、部署脚本 #!/bin/bash set -eif [ "$#" -ne 3 ]; thenecho "Usage:

(已解决)org.springframework.amqp.rabbit.support.ListenerExecutionFailedException

报错截图 解决方案 1、登录rabbitMQ网址,删除所有队列 2、重启rabbitMQ 亲测有效!!!亲测有效!!!亲测有效!!!

uni-appH5Android混合开发二 || 使用Android Studio打包应用APK

前言: 在上一章节我们已经讲了如何uni-app离线打包Android平台教程,这一章就该来讲讲如何使用Android Studio打包应用APK提供给Android手机安装使用了。 uni-app跨平台框架介绍和快速入门 uni-app跨平台框架介绍和快速入门 第一步、首先打开已经编译好的…

如何設置使用Socks5代理(Mac系統)

Socks5代理是一種常用的代理伺服器協議,與其他類型的代理相比,Socks5代理支持更多的網路協議,因此它可以用於更多的應用場景,如Web流覽,郵件等等。此外,Socks5代理還支持各種身份驗證方法,包括無…

javac编译web项目中的src

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

图:广度优先遍历(BFS)和深度优先遍历(DFS)

1.工具类:队列和字典 export class DictionNary {// 字典的封装constructor() {this.items {}}set(key, value) {// 添加键this.items[key] value}has(key){// 判断键是否存在return this.items.hasOwnProperty(key)}get(key){// 获取键的valuereturn this.has(k…

六级仔细阅读

画两到三个词,精准定位 要原文和同义都满足才选 先看题目,在看原文,不要先看选项 做不出答案就继续往下读,读出来了就不用继续读了 分清楚是问为什么还是是什么,是什么看前面,为什么看后面 不知道就优先…

react18【系列实用教程】useState (2024最新版)

类似 vue 的 data 选项 功能 向组件添加响应式变量,当响应式变量变化时,组件的视图UI也会跟着变化【数据驱动视图】 语法 参数为变量的初始值返回值为一个只有两个元素的数组,第一项元素为传入的参数,第二项元素是一个setter 函数…

Rust 的 Warp 库编写的 restful api 参数传递与解析方法

Warp是一个用 Rust 编写的流行的异步 web 框架。在使用 warp 构建 RESTful API 时,可以通过多种方式传递参数到你的处理函数中。 以下是一些常见的方法,说明如何在 warp 中传递参数: 路径参数: 你可以使用 warp::path 和 warp::…

力扣HOT100 - 215. 数组中第K个最大元素

解题思路: 快速选择,目标是找出数组中第 k 小(或第 k 大)的元素,而不是对整个数组进行排序。 (需要和快排进行区分,快排的目的是排序) 注意: i l - 1, j r 1; 为什…

Spring Boot集成zookeeper快速入门Demo

1.什么是zookeeper? Zookeeper 是一个开源的分布式协调服务,目前由 Apache 进行维护。Zookeeper 可以用于实现分布式系统中常见的发布/订阅、负载均衡、命令服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。它具有以下特性…

大众点评全国店铺基础信息采集-爱车类店铺

2024年5月最新采集大众点评全国(内地)-爱车大类-店铺基础信息,120余万家 爱车类店铺 示例: 店铺id H7hoMM74HIBAREpy 店铺名称 手把手汽车陪练(北京总部) 十分制效果评分 9.2 十分制服务评分 9.2 十分制环境评分 9.2 人均价格 1233 评价数量 514…

学习Java的日子 Day45 HTML常用的标签

Day45 HTML 1.掌握常用的标签 1.1 标题标签 h1-h6 <h1>一级标签</h1> <h2>二级标签</h2> <h3>三级标签</h3> <h4>四级标签</h4> <h5>五级标签</h5> <h6>六级标签</h6> 显示特点&#xff1a; * 文字…

C语言经典例题-13

1.小乐乐走台阶 题目描述: 小乐乐上课需要走n阶台阶&#xff0c;因为他腿比较长&#xff0c;所以每次可以选择走一阶或者走两阶&#xff0c;那么他一共有多少种走法&#xff1f; 输入描述: 输入包含一个整数n (1 ≤ n ≤ 30) 输出描述: 输出一个整数&#xff0c;即小乐乐可以…

MemoryModule - exp - test

文章目录 MemoryModule - exp - test概述笔记测试环境GetModuleFileName不能正常执行GetModuleFileNameWntdll_LdrGetDllFullName猜测原因用LoadLibrary载入的DLL中功能是正常的 gLog可以正常使用内存载入DLL无法支持的功能的折中方法COM操作正常调用方代码接口代码 接口入参测…

基于springboot实现毕业设计系统项目【项目源码+论文说明】

基于springboot实现毕业设计系统演示 摘要 在如今社会上&#xff0c;关于信息上面的处理&#xff0c;没有任何一个企业或者个人会忽视&#xff0c;如何让信息急速传递&#xff0c;并且归档储存查询&#xff0c;采用之前的纸张记录模式已经不符合当前使用要求了。所以&#xff…

绝地求生:盘点宝箱中能开出来的极品皮肤!

最近杜卡迪联名大伙儿不都开箱子出了一堆皮肤吗&#xff1f;很多人搞不清哪些皮肤要留&#xff0c;哪些皮肤可以分。 OK这篇文章稍微推荐几个我认为的高质量可兑换的皮肤&#xff0c;当然个人整理难免有疏漏&#xff0c;欢迎评论区补充。 余波学院黑丝袜 目前游戏里唯一一条显…

力扣 873. 最长的斐波那契子序列的长度 python AC

动态规划做法 class Solution:def lenLongestFibSubseq(self, arr):size len(arr)dp [[2] * size for _ in range(size)]maxv 0for i in range(2, size):for j in range(1, i):d arr[i] - arr[j]l, r 0, j - 1while l < r:mid (l r) // 2if arr[mid] d:l midbreak…

pgbackrest 备份工具使用 postgresql

为啥我会使用pgbackrest进行备份&#xff1f;因为postgresql没有自带的差异备份工具。。。而我们在生产环境上&#xff0c;一般都需要用到差异备份或者增量备份。我们的备份策略基本是&#xff0c;1天1次完整备份&#xff0c;1个小时1次差异备份。如果只需要完整备份&#xff0…

「PHP系列」PHP DOM扩展库/SimpleXML 解析XML文档

文章目录 一、DOM介绍二、DOM扩展库解析XML1. 加载XML文档2. 访问DOM树3. 读取和修改节点数据4. 保存修改后的XML文档5. 注意事项&#xff1a; 三、SimpleXML解析XML1. 加载XML文档2. 访问XML数据3. 修改XML数据4. 保存修改后的XML文档5. 注意事项&#xff1a; 四、相关链接 一…