Jenkins 简易使用记录

一、Jenkins 核心功能与适用场景
  1. 核心功能

    • 持续集成(CI):自动构建代码、运行单元测试。
    • 持续交付(CD):自动化部署到测试/生产环境。
    • 任务调度:定时执行任务(如备份、清理)。
    • 插件生态:支持 1,500+ 插件(Git、Docker、Kubernetes 等)。
  2. 适用场景

    • 自动化测试:每次提交后自动运行测试。
    • 多环境部署:一键发布到开发、测试、生产环境。
    • 微服务架构:并行构建多个服务。
    • 跨团队协作:通过流水线规范开发流程。

二、Jenkins 使用流程(通用步骤)
  1. 安装与配置

    • 通过 Docker 或原生安装(推荐 Docker 简化依赖):
      docker run -d -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts
      
    • 初始化后安装常用插件:Git、Pipeline、SSH。
  2. 创建任务

    • 自由风格项目:适合简单任务。
    • Pipeline 项目:通过 Jenkinsfile 定义复杂流程(推荐)。

三、Spring Boot 项目部署示例
场景:将 Spring Boot 项目构建为 JAR 包并部署到 Linux 服务器。
  1. Jenkins 配置

    • 凭据管理:添加 Git 仓库的 SSH 密钥和服务器 SSH 账号。
    • 安装插件:Maven Integration、Publish Over SSH。
  2. Pipeline 脚本(Jenkinsfile)

    pipeline {agent anystages {stage('Checkout') {steps {git url: 'git@github.com:your/spring-boot-repo.git', branch: 'main'}}stage('Build') {steps {sh 'mvn clean package -DskipTests'}}stage('Deploy') {steps {sshPublisher(publishers: [sshPublisherDesc(configName: 'prod-server',transfers: [sshTransfer(sourceFiles: 'target/*.jar',removePrefix: 'target/',remoteDirectory: '/opt/app',execCommand: 'sudo systemctl restart springboot-app')])])}}}
    }
    
  3. 服务器准备

    • 创建 Systemd 服务文件 /etc/systemd/system/springboot-app.service
      [Unit]
      Description=Spring Boot App
      After=network.target[Service]
      ExecStart=/usr/bin/java -jar /opt/app/your-app.jar
      User=appuser
      Restart=always[Install]
      WantedBy=multi-user.target
      

四、Vue 项目部署示例
场景:构建 Vue 静态文件并部署到 Nginx 服务器。
  1. Pipeline 脚本(Jenkinsfile)

    pipeline {agent anystages {stage('Checkout') {steps {git url: 'git@github.com:your/vue-project.git', branch: 'main'}}stage('Build') {steps {sh 'npm install'sh 'npm run build'}}stage('Deploy') {steps {sshPublisher(publishers: [sshPublisherDesc(configName: 'frontend-server',transfers: [sshTransfer(sourceFiles: 'dist/**',remoteDirectory: '/usr/share/nginx/html',execCommand: 'sudo systemctl reload nginx')])])}}}
    }
    
  2. 服务器配置

    • 确保 Nginx 配置指向 /usr/share/nginx/html
      server {listen 80;root /usr/share/nginx/html;index index.html;
      }
      

五、最佳实践与建议
  1. Pipeline 优化

    • Jenkinsfile 纳入代码仓库,实现“流水线即代码”。
    • 使用 parallel 阶段加速多模块构建。
  2. 安全与维护

    • 敏感信息管理:使用 Jenkins 的 Credentials Binding 插件注入密码。
    • 镜像仓库集成:结合 Docker 构建镜像并推送到 Harbor 或 Docker Hub。
    • 回滚机制:通过版本号或 Git Tag 快速回退。
  3. 高级场景

    • Kubernetes 部署:使用 Jenkins Kubernetes 插件动态创建 Pod。
    • 多环境配置:通过参数化构建选择环境(dev/test/prod)。

六、常见问题处理
  • 构建失败定位:查看控制台日志,优先解决编译错误。
  • 权限问题:确保 Jenkins 用户有服务器 SSH 权限和文件写入权限。
  • 网络超时:配置 Jenkins 代理或调整超时时间。

通过以上步骤,可高效实现 Spring Boot 和 Vue 项目的自动化部署,显著提升 DevOps 效率。

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

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

相关文章

【HFP】蓝牙HFP协议音频连接核心技术深度解析

目录 一、音频连接建立的总体要求 1.1 发起主体与时机 1.2 前提条件 1.3 同步连接的建立 1.4 通知机制 二、不同主体发起的音频连接建立流程 2.1 连接建立触发矩阵 2.2 AG 发起的音频连接建立 2.3 HF 发起的音频连接建立 三、编解码器连接建立流程 3.1 发起条件 3.…

【卡洛诗】成为平价市场中的标杆西餐厅

近年来,中国餐饮市场在消费分级趋势下面临结构性调整,消费者对“质价比”的追求催生了新赛道的崛起。在这一背景下,卡洛诗西餐凭借精准的定位与系统性创新,以“中式西餐”为核心理念,成功打破西餐高价壁垒,…

嵌入式设备网络的动态ID分配机制实现

文章目录 前言一、系统设计要点二、核心数据结构2.1 设备唯一标识(DeviceUID)2.2 节点信息(Node)2.3 节点管理器(NodeManager) 三、核心算法实现3.1 初始化与清理3.1.1 初始化节点管理器3.1.2 清理节点管理器 3.2 动态ID分配策略3.2.1 查找最小可用ID3.2.2 ID使用检查 3.3 心跳…

WebSocket 双向通信技术详解

引言 在现代Web应用中,实时通信已经成为不可或缺的一部分。想象一下聊天应用、在线游戏、股票交易平台或协作工具,这些应用都需要服务器能够即时将更新推送给客户端,而不仅仅是等待客户端请求。WebSocket技术应运而生,它提供了一…

kafka菜鸟教程

一、kafka原理 1、kafka是一个高性能的消息队列系统,能够处理大规模的数据流,并提供低延迟的数据传输,它能够以每秒数十万条消息的速度进行读写操作。 二、kafka优点 1、服务解耦 (1)提高系统的可维护性‌ 通过服务…

SQLMap工具使用

一、SQLMap介绍 SQLMap 是一款强大的开源自动化 SQL 注入工具,用于检测和利用 Web 应用程序中的 SQL 注入漏洞。其工作原理是SQLMap 通过向目标 URL 发送带有特殊构造的 SQL 语句的请求,观察目标应用程序的响应,来判断是否存在 SQL 注入漏洞…

virtualbox安装xp系统卡顿的解决

安装virtualbox的增强功能即可。 先去下载 — Oracle VirtualBox下载 VirtualBox Guest Additions iso镜像 然后在这里导入iso镜像 再按照这几步操作 virtualbox按键 强制关闭xp-cuckoo的虚拟机 VBoxManage controlvm "xp-cuckoo" poweroff

观察者 ➜ 事件总线:一路走来的碎碎念

写给未来的自己:每次手敲事件模型都要 Google,干脆把思路和踩坑一次性记清楚。文章很长,都是唠叨,目的是让自己看两眼就能把设计理由找回来。 目录 为什么我要折腾事件模型?V0 ─ 单一事件的观察者模式V1 ─ 多事件同步总线(类型拆分)V2 ─ 订阅者优先级(链式调用可控)…

windwos脚本 | 基于scrcpy,只投声音、只投画面

安装scrcpy,scrcpy自带adb 写脚本命名为 .bat 结尾 注意这里的set "PATHD:\tools\scrcpy-win64-v3.2;%PATH%" 替换成scrcpy的安装目录 echo off :: 设置UTF-8编码 chcp 65001 > nul :: 设置标题 title 手机投屏工具:: 添加 scrcpy 路径到 PATH set &q…

Android device PCO (protocol configuration options) intro

术语 英文缩写英文全称中文PCOprotocol configuration options协议配置选项RILradio interface layer 无线电接口层PCO介绍 PCO(Protocol Configuration Options) 是 3GPP 标准协议(TS 24.008)中定义的核心概念,用于在 LTE/5G 网络建立 PDN 连接时传递动态配置参数(如 D…

Spring Boot配置文件优先级全解析:如何优雅覆盖默认配置?

📚 一、为什么需要了解配置文件优先级? 想象一下,你正在玩一个游戏🎮,游戏里有默认设置,但你可以通过不同的方式修改这些设置: 游戏内置的默认设置(就像Spring Boot的默认配置&…

汽车行驶工况特征参数:从“速度曲线”到“驾驶DNA”的硬核解码

作为新能源汽车行业的从业者,你是否曾困惑于这些问题: 为什么同一款电动车,不同用户的实际续航差异高达30%?如何精准量化驾驶行为对电池寿命的影响?车企标定的“NEDC续航”与真实路况差距的根源是什么? 这…

HTTP 2.0 协议特性详解

1. 使用二进制协议,简化传输的复杂性,提高了效率 2. 支持一个 TCP 链接发起多请求,移除 pipeline HTTP/2 移除了 HTTP/1.1中的管道化(pipeline)机制,转而采用多路复用(Multiplexing&#xff0…

完美解决浏览器不能复制的问题(比如赛氪网的中题库练习题)

仅供复制题库题目进行打印学习使用! 最近想把赛氪网题库中的题目打印出来做练习,发现题库中的题目不能复制,不能在试卷上勾画标记太难受了,而且不能留作材料以后复习,故出此策。 而且CtrlP打印出的pdf会缺少题目。(我…

std::set (C++)

std::set 1. 概述定义特点 2. 内部实现3. 性能特征4. 常用 API5. 使用示例6. 自定义比较器7. 注意事项与优化8. 使用建议 1. 概述 定义 template<class Key,class Compare std::less<Key>,class Allocator std::allocator<Key> > class std::set;特点 有…

SSM省市区三级联动和三表联查附带数据库

SSM省市区三级联动和三表联查 ------附带数据库码云地址&#xff1a;https://gitee.com/Mr_ZKC/NO1 数据库在项目中

曲棍球·棒球1号位

中国女子曲棍球队曾涌现过马弋博、李红侠等优秀选手&#xff0c;但“李红”这一名字可能为信息误差。以下为您系统介绍曲棍球&#xff0c;并结合棒球进行对比分析&#xff1a; 曲棍球&#xff08;Hockey&#xff09;核心特点 运动形式 分为草地曲棍球&#xff08;夏季奥运会项…

12芯束装光纤不同包层线颜色之间的排列顺序

为什么光纤线必须按照以下颜色顺序进行排序&#xff1f;这其实是为了防止光污染的问题&#xff0c;不同颜色在传递光时从包层表皮漏光传感到梳妆的其它纤芯上&#xff0c;会有光污染的问题&#xff0c;而为了减少并防止光污染的现象&#xff0c;所以在光通信之中&#xff0c;需…

c++程序的打包编译cmake+make

c打包编译 1 在不用系统中打包介绍1.1 linux中打包c程序的2种方式1.2 windows中打包c程序1.3 cmakeNinja和cmakemake的两种方式对比1.3.1 Ninja是什么&#xff08;可以认为是make工具的一个替代产品&#xff09;1.3.2 cmakeNinja可以用于linux和windows系统中&#xff0c;编译效…