当前位置: 首页 > news >正文

jenkins自动化构建保姆级教程(持续更新中)

1.安装

1.1版本说明

访问jenkins官网 https://www.jenkins.io/,进入到首页
jenkins官方首页
点击【Download】按钮进入到jenkins下载界面
jenkins下载界面
左侧显示的是最新的长期支持版本,右侧显示的是最新的可测试版本(可能不稳定),建议使用最新的长期支持版本,这里我使用2.401.3

1.2环境说明

使用虚拟机centos7系统,采用docker-compose方式安装

1.3安装必要条件说明

虚拟机通外网、安装好docker、docker-compose、jdk(17)、maven(3.9.3)、git,这些软件的安装请自行安装比较简单,如果不会,请找度娘,软件安装完后建议验证

docker docker version

docker-compose docker-compose -v

jdk java -version

maven mvn -v

git git --version

在虚拟机(centos7)系统的/root的目录下创建jenkins.yml构建文件

version : '3.8'
services:jenkins:image: jenkins/jenkins:2.401.3-ltscontainer_name: jenkinsrestart: alwaysuser: rootports:- "8888:8080"- "8089:50000"environment:- m=1024M- u=0- TZ=Asia/Shanghaivolumes:- /usr/java/jdk17.0.8:/usr/java/jdk17.0.8- /usr/java/maven3.9.3:/usr/java/maven3.9.3- /usr/libexec/git-core:/usr/libexec/git-core- /root/jenkins/home:/var/jenkins_home- /etc/localtime:/etc/localtime- /root/repo:/root/repo

配置文件说明:
a.必须指定user为root用户,否则启动时会报错提示/var/jenkins_home无访问权限
b.必须指定jdk、maven、git等运行环境宿主机和容器路径的映射关系,安装路径根据自己实际安装的路径修改

1.4 安装并启动

在jenkins.yml所在目录下执行一键启动命令 : docker-compose -f jenkins.yml所在路径 up -d

查看启动情况 : docker logs -f jenkins
在这里插入图片描述
红框中的内容为初始登录的密码,此时可以在浏览器输入:虚拟机ip:8888 进行访问
在这里插入图片描述
输入控制台密码,点击继续按钮软件需要加载一些必须的配置,请耐心等待一会,加载完成后即可进入到插件安装界面,鉴于对软件不熟悉,建议选择【安装推荐的插件】
在这里插入图片描述
点击进入到推荐插件安装界面,耐心等待安装完成
在这里插入图片描述
安装完成插件后自动进入到添加管理员账号界面,建议添加管理员账号,不要使用admin账户
在这里插入图片描述
在这里插入图片描述
点击【保存并完成】按钮,进入到实例配置界面,直接保存并完成即可
在这里插入图片描述
点击开始使用jenkins进入到首页
在这里插入图片描述

2.配置

2.1汉化(建议配置)

manage jenkins ->Plugins->installed plugins 搜索框中输入 local发现汉化插件已经安装,重启jenkins即可
在这里插入图片描述
重启jenkins
在这里插入图片描述
重启完成,再次访问,发现菜单都成中文了,汉化完成
在这里插入图片描述

2.2系统工具配置

主要配置Publish Over SSH,建打包完成的jar发送到指定服务器并执行运行操作
系统管理->系统配置
全局密钥、密码等信息配置
在这里插入图片描述
具体远程服务器信息配置
在这里插入图片描述
配置完成可以点击右下方的【Test Configuration】按钮进行测试,如果提示 “sucess”说明配置成功
在这里插入图片描述

2.3全局工具配置

maven settings.xml配置 、 jdk、maven
a.maven settings.xml配置
在这里插入图片描述
b.jdk配置(可配置多个,至少 配置一个)
在这里插入图片描述
c.git配置(可选,可以不配置使用默认的)
在这里插入图片描述
d.maven配置(可配置多个,至少配置一个)
在这里插入图片描述

3.使用

3.1前端vue项目构建

首页->新建任务
在这里插入图片描述
输入任务名称,可以使用下面的复制功能,复制一个已有的任务
在这里插入图片描述
点击【确定】按钮进入任务的配置界面
在这里插入图片描述
源码配置:源码仓库、访问凭证、构建分支等
在这里插入图片描述
自动化构建配置
在这里插入图片描述
构建环境设置
在这里插入图片描述
构建命令设置
在这里插入图片描述
远程服务器设置
在这里插入图片描述
配置完成后依次点击最下面的【应用】、【保存】按钮跳转到任务的构建界面,点击【立即构建】按钮 开始进行自动构建
在这里插入图片描述
开始构建后点击具体的构建版本(左下角的#1、#2、#3…)查看构建的情况
在这里插入图片描述
当最下面提示sucess后说明构建成功,赶紧试试吧

3.2后端springboot、springcloud项目构建

首页->新建任务,输入任务名称,选择构建一个maven项目
在这里插入图片描述
输入任务名称,可以使用下面的复制功能,复制一个已有的任务
在这里插入图片描述
点击【确定】按钮后进入到任务的配置界面
General配置(可选):
在这里插入图片描述
源码配置(必配项):
在这里插入图片描述
构建触发器配置(手动构建不需要配置):
在这里插入图片描述
构建环境配置(后端项目构建此项可不配置):
在这里插入图片描述
构建指令配置(必须配置):
在这里插入图片描述
特殊说明:
Root Pom文件中设置的是需要构建的maven项目的pom.xml,如果是maven多模块的项目 ,需要构建指定的模块,此处需要设置为指定模块的pom.xml,例如maven多模块项目的结构为a模块为父工程,a工程下面有b工程和c工程,如需要构建c工程,此处需设置为【c/pom.xml】
Goals and options 配置,此处需配置maven打包的指令,clean先清除jar 然后执行package打包,打包过程跳过测试 ,-P 后面配置的是打包的环境

打包完成的后续配置(发送jar到服务器,并运行):
远程服务器执行时机配置
在这里插入图片描述
添加远程服务器配置
在这里插入图片描述
远程服务器目录以及启动配置:
在这里插入图片描述
然后依次点击【应用】、【保存】按钮进入到任务的构建界面,点击【立即构建】按钮开始进行项目的构建
在这里插入图片描述
开始构建后点击具体的构建版本(左下角的#1、#2、#3…)查看构建的情况
在这里插入图片描述
当最下面提示sucess后说明构建成功,赶紧试试吧

4.高级应用

4.1jenkins分布式配置以及应用(jenkins主从)

4.1.1背景

在众多 Job 的场景下, 单台 jenkins master 同时执行代码 clone、 编译、 打包及构建,其性能可能会出现瓶颈从而会影响代码部署效率,影响 jenkins 官方提供了 jenkins 分布式构建, 将众多 job 分散运行到不同的 jenkins slave 节点, 大幅提高并行 job 的处理能力。

jenkins分布式就是有多个slave节点,当需要构建的项目非常多时,slave会承担master的工作量,在slave在上创建项目。

slave的环境要和master一致,master上安装了什么软件在slave上要准备相同的,并且路径最好保持一致,与master的区别在于不用安装jenkins

4.1.2 架构说明

在这里插入图片描述

4.1.3配置

master 192.168.2.54 slave-01 192.168.2.51

Jenkins master节点必须安装 SSH Build Agents plugin插件
在这里插入图片描述
slave节点配置

首页—》系统管理—》节点管理—》New Node 进入到新增节点界面,输入节点名称,选择固定节点,然年点击【Create】按钮
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置完成后,点击【保存】按钮完成jenkins从节点的配置。

相关文章:

jenkins自动化构建保姆级教程(持续更新中)

1.安装 1.1版本说明 访问jenkins官网 https://www.jenkins.io/,进入到首页 点击【Download】按钮进入到jenkins下载界面 左侧显示的是最新的长期支持版本,右侧显示的是最新的可测试版本(可能不稳定),建议使用最新的…...

HTTPS 的加密流程

目录 一、HTTPS是什么? 二、为什么要加密 三、"加密" 是什么 四、HTTPS 的工作过程 1.对称加密 2.非对称加密 3.中间人攻击 4.证书 总结 一、HTTPS是什么? HTTPS (Hyper Text Transfer Protocol Secure) 是基于 HTTP 协议之上的安全协议&…...

Jmeter 参数化的几种方法

目录 配置元件-用户自定义变量 前置处理器-用户参数 配置元件-CSV Data Set Config Tools-函数助手 配置元件-用户自定义变量 可在测试计划、线程组、HTTP请求下创建用户定义的变量 全局变量,可以跨线程组调用 jmeter执行的时候,只获取一次&#xff0…...

剑指Offer45.把数组排成最小的数 C++

1、题目描述 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 示例 1: 输入: [10,2] 输出: “102” 示例 2: 输入: [3,30,34,5,9] 输出: “3033459” 2、VS2019上运行 先转换成字符串再组合起来 #in…...

【java毕业设计】基于SSM+MySql的人才公寓管理系统设计与实现(程序源码)--人才公寓管理系统

基于SSMMySql的人才公寓管理系统设计与实现(程序源码毕业论文) 大家好,今天给大家介绍基于SSMMySql的人才公寓管理系统设计与实现,本论文只截取部分文章重点,文章末尾附有本毕业设计完整源码及论文的获取方式。更多毕业…...

golang操作excel的高性能库——excelize/v2

目录 介绍文档与源码安装快速开始创建 Excel 文档读取 Excel 文档打开数据流流式写入 [相关 Excel 开源类库性能对比](https://xuri.me/excelize/zh-hans/performance.html) 介绍 Excelize是一个纯Go编写的库,提供了一组功能,允许你向XLAM / XLSM / XLS…...

学习51单片机怎么开始?

学习的过程不总是先打好基础,然后再盖上层建筑,尤其是实践性的、工程性很强的东西。如果你一定要先全面打好基础,再学习单片机,我觉得你一定学不好,因为你的基础永远打不好,因为基础太庞大了,基…...

[.NET学习笔记] -.NET6.0项目动态加载netstandard2.0报错但项目添加引用则正常的问题

问题描述 .NET6.0的项目使用netstandard2.0版本的动态链接库。若是在项目中直接添加引用,应用netstandard2.0项目或者netstandard2.0编译后的dll均能正常工作。但如果通过xcopy等方式,额外将对应的dll复制到执行目录,会执行失败。调用方式一…...

山景DSP芯片可烧录AP8224C2音频处理器方案

AP8224C2高性能32位音频应用处理器AP82系列音频处理器是面向音频应用领域设计的新一代SoC平台产品,适用于传统音响系统、新兴的蓝牙或Wifi 无线音频产品、Sound Bar 和调音台等市场。该处理器在总体架构和系统组成上,充分考虑了音频领域的特点&#xff0…...

来聊聊托管服务提供商(MSP)安全

纵观各个中小型企业,由于预算十分有限而且系统环境的满载,如今它们往往需要依赖托管服务提供商(managed service providers,MSP)来支持其IT服务与流程。而由于MSP提供的解决方案可以与客户端基础设施相集成&#xff0c…...

最新版本的Anaconda环境配置、Cuda、cuDNN以及pytorch环境一键式配置流程

本教程是最新的深度学习入门环境配置教程,跟着本教程可以帮你解决入门深度学习之前的环境配置问题。同时,本教程拒绝琐碎,大部分以图例形式进行教程。这里我们安装的都是最新版本~ 文章目录 一、Anaconda的安装1.1 下载1.2 安装1.3 环境配置…...

【数据结构与算法】十大经典排序算法-选择排序

🌟个人博客:www.hellocode.top 🏰Java知识导航:Java-Navigate 🔥CSDN:HelloCode. 🌞知乎:HelloCode 🌴掘金:HelloCode ⚡如有问题,欢迎指正&#…...

【Spring专题】Spring之Bean的生命周期源码解析——阶段一(扫描生成BeanDefinition)

目录 前言阅读准备阅读指引阅读建议 课程内容一、生成BeanDefinition1.1 简单回顾*1.2 概念回顾1.3 核心方法讲解 二、方法讲解2.1 ClassPathBeanDefinitionScanner#scan2.2 ClassPathBeanDefinitionScanner#doScan2.3 ClassPathScanningCandidateComponentProvider#findCandid…...

【C#】判断打印机共享状态

打印机共享状态 /// <summary>/// 打印机共享状态/// </summary>public enum PrinterShareState{/// <summary>/// 无打印机/// </summary>None -1,/// <summary>/// 未共享/// </summary>NotShare 0,/// <summary>/// 已共享/// …...

运维监控学习笔记7

Zabbix的安装&#xff1a; 1、基础环境准备&#xff1a; 安装zabbix的yum源&#xff0c;阿里的yum源提供了zabbix3.0。 rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm 这个文件就是生成了一个zabbix.repo 2、安…...

【业务功能篇64】maven加速 配置settings.xml文件 镜像

maven加速 添加阿里镜像仓 <?xml version"1.0" encoding"UTF-8"?><!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additi…...

Spring Boot(六十四):SpringBoot集成Gzip压缩数据

1 实现思路 2 实现 2.1 创建springboot项目 2.2 编写一个接口,功能很简单就是传入一个Json对象并返回 package com.example.demo.controller;import com.example.demo.entity.Advertising; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframewo…...

Mac安装opencv后无法导入cv2的解决方法

前提条件&#xff1a;以下两个插件安装成功 pip install opencv-python pip install --user opencv-contrib-python 注&#xff1a;直接用pip install opencv-contrib-python如果报错&#xff0c;就加上“–user" 第一步&#xff1a; 设置–添加python解释器 第二步&am…...

【题解】按之字形顺序打印二叉树

按之字形顺序打印二叉树 题目链接&#xff1a;按之字形顺序打印二叉树 解题思路&#xff1a;层次遍历&#xff0c;借助队列 首先解决如何模仿之字形的问题&#xff0c;我们为此设置一个flag&#xff0c;每到一层就修改flag&#xff0c;如果flag为true&#xff08;初始为fals…...

后端人员如何快速上手vue

一、环境搭建 了解更多vue-cli 官网地址:https://cli.vuejs.org/zh/guide/browser-compatibility.html 前提 1.安装node(js代码的运行环境)、npm、cnpm/yarn&#xff1b; nodejs官网&#xff1a;https://nodejs.org/en cnpm安装&#xff1a;https://www.python100.com/htm…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...

【JavaSE】多线程基础学习笔记

多线程基础 -线程相关概念 程序&#xff08;Program&#xff09; 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序&#xff0c;比如我们使用QQ&#xff0c;就启动了一个进程&#xff0c;操作系统就会为该进程分配内存…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...