当前位置:

首页 > 软件教程 > jenkins自动部署jar包教程及完整操作流程

jenkins自动部署jar包教程及完整操作流程

手把手教你配置Jenkins自动部署Java应用。涵盖Git源码管理、Maven构建配置、SSH远程执行脚本及JAR包替换重启的全流程操作,解决手动部署繁琐易错的问题。

本文目录

    手动上传JAR包并重启服务不仅耗时,还容易因操作失误导致线上故障。通过Jenkins实现自动化部署,只需一次配置,后续每次代码提交都能自动完成构建、传输和重启,极大释放人力并确保环境一致性。本教程将基于标准的Spring Boot项目,演示从零搭建自动部署流水线的具体步骤。

    jenkins自动部署jar包教程及完整操作流程

    Jenkins自动部署JAR包全流程概览

    在开始之前,请确保已安装Jenkins、JDK、Maven以及Git插件,且目标部署服务器已开启SSH服务并配置好免密登录或账号密码权限。核心思路是:Jenkins作为控制中心,拉取代码后打包成JAR,再通过SSH将文件发送到远程服务器,最后执行脚本替换旧文件并重启应用。

    1. 创建自由风格项目

    登录Jenkins控制台,点击左侧菜单的【新建任务】。输入任务名称,例如“auto-deploy-jar”,选择【构建一个自由风格的软件项目】,然后点击【确定】进入配置页面。这种类型的项目灵活性最高,适合通过Shell脚本自定义复杂的部署逻辑。

    2. 配置源码管理

    在【源码管理】区域,选择【Git】。在【Repository URL】中填入你的Git仓库地址。如果仓库是私有的,需要在【Credentials】中添加对应的用户名和密码或SSH密钥。分支指定填写*/main或*/master,确保Jenkins拉取的是最新的主干代码。

    jenkins自动部署jar包教程及完整操作流程

    配置Git仓库地址和凭证

    3. 设置构建环境

    滚动到【构建环境】部分,勾选【Provide Node & npm bin/ folder to PATH】(如果前端也在此构建)或保持默认。重点在于【构建】区域。点击【增加构建步骤】,选择【Invoke top-level Maven targets】。在【Goals】中输入clean package -DskipTests。这一步会调用服务器上的Maven进行编译和打包,跳过测试以加快构建速度。确保Jenkins全局工具配置中已正确指向Maven和JDK的安装路径。

    jenkins自动部署jar包教程及完整操作流程

    3. 设置构建环境

    4. 编写远程部署脚本

    构建完成后,需要将生成的JAR包发送到远程服务器并重启服务。点击【增加构建步骤】,选择【Execute shell script on remote host using ssh】(需安装Publish Over SSH插件)或直接使用【Send files or execute commands over SSH】。这里以执行远程Shell命令为例。

    在【Exec command】中输入以下脚本逻辑:

    # 定义变量
    APP_NAME="my-application"
    JAR_PATH="/opt/apps/${APP_NAME}.jar"
    BACKUP_PATH="/opt/apps/backup"
    DATE=$(date +%Y%m%d%H%M%S)
    
    # 创建备份目录
    mkdir -p $BACKUP_PATH
    
    # 停止旧进程
    echo "Stopping old process..."
    pid=$(ps -ef | grep $APP_NAME | grep -v grep | awk '{print $2}')
    if [ -n "$pid" ]; then
        kill -9 $pid
        echo "Process $pid killed."
    else
        echo "No running process found."
    fi
    
    # 备份旧JAR包
    if [ -f $JAR_PATH ]; then
        mv $JAR_PATH $BACKUP_PATH/${APP_NAME}-${DATE}.jar
        echo "Old jar backed up."
    fi
    
    # 启动新JAR包
    # 注意:实际生产中建议使用nohup或systemd管理进程
    nohup java -jar $JAR_PATH > /dev/null 2>&1 &
    echo "Application started."
    

    这段脚本首先查找并杀死正在运行的Java进程,然后将旧的JAR包移动到备份目录以防回滚,最后以后台模式启动新的JAR包。请根据实际的项目名称和路径修改APP_NAME和JAR_PATH。

    jenkins自动部署jar包教程及完整操作流程

    配置SSH远程执行重启脚本

    5. 配置构建后操作

    为了确保JAR包能准确传输到远程服务器,如果使用【Send files or execute commands over SSH】插件,需在【Source files】中填写target/*.jar,表示发送构建目录下生成的JAR包。在【Remote directory】中填写远程服务器的目标路径,如/opt/apps/。这样,Jenkins会自动将构建好的文件上传到指定位置,随后执行上述的重启脚本。

    6. 验证自动部署效果

    保存配置后,点击左侧的【立即构建】。观察控制台输出,确认Git拉取成功、Maven构建无报错、SSH连接正常且远程脚本执行完毕。登录远程服务器,使用ps -ef | grep java检查进程是否已启动,并访问应用接口验证服务是否正常响应。

    尝试修改本地代码并提交到Git仓库,再次触发构建。观察Jenkins是否自动检测到变更并重新执行整个流程。如果一切顺利,你将看到服务器上的JAR包版本已更新,且服务无需人工干预即可恢复运行。

    jenkins自动部署jar包教程及完整操作流程

    查看构建日志验证部署结果

    至此,一个基础的Jenkins自动部署JAR包流程已搭建完成。对于生产环境,建议进一步优化脚本,增加健康检查机制,确保新服务完全启动后再切断旧流量,或使用更专业的进程管理工具如Systemd来托管Java应用,以提高稳定性。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    软件教程 maven CI/CD jenkins Shell脚本 jar包
    相关文章 更多
    Java单元测试入门:使用JUnit 5编写第一个测试用例
    Java单元测试入门:使用JUnit 5编写第一个测试用例

    面向初学者的JUnit 5实用入门指南。从测试概念、Maven依赖配置,到手把手编写首个单元测试用例及断言验证,助你掌握Java单元测试的核心流程。

    maven配置镜像和仓库区别及正确配置方法
    maven配置镜像和仓库区别及正确配置方法

    详细介绍 Maven 配置镜像与仓库的区别以及正确的配置步骤,帮助读者快速掌握实践操作。

    shell脚本怎么执行命令并获取执行结果的方法
    shell脚本怎么执行命令并获取执行结果的方法

    详细讲解在Shell脚本中执行命令并获取执行结果的常用方法,涵盖标准输出捕获、退出状态码判断、错误流重定向、多行结果处理及常见避坑要点。

    jenkins配置git仓库步骤与凭证设置教程
    jenkins配置git仓库步骤与凭证设置教程

    遇到Jenkins拉取代码报错?本教程手把手教你配置Git仓库地址,正确添加SSH或HTTP凭证,并演示在自由风格项目和Pipeline中如何调用,彻底解决权限验证难题。

    jenkins构建失败怎么查看原因及日志排查教程
    jenkins构建失败怎么查看原因及日志排查教程

    面对Jenkins构建失败,通过解析控制台输出、检查系统日志和验证节点状态,快速区分代码逻辑错误与环境配置问题,提供高效的故障排查思路。

    maven打包跳过测试命令及使用方法
    maven打包跳过测试命令及使用方法

    遇到Maven打包慢?本文详解如何通过-DskipTests和-Dmaven.test.skip=true快速跳过测试,并对比两者区别及IDE中的设置方法,助你高效构建项目。

    maven 打包命令怎么用?常用选项与执行示例
    maven 打包命令怎么用?常用选项与执行示例

    详细介绍 Maven 中 mvn package 命令的具体用法,包括清理构建、跳过测试、指定配置文件等常用选项,并提供单模块与多模块项目的实际执行示例,帮助开发者高效完成项目打包。

    如何使用正确的凭据登录 Jenkins
    如何使用正确的凭据登录 Jenkins

    简介 Jenkins 是一个广泛使用的开源自动化服务器,可帮助开发人员构建、测试和部署他们的软件项目。在本教程中,我们将指导你使用正确的凭据登录 Jenkins,并解决你可能遇到的任何登录问题。 Jenkins 简介 Jenkins 是一款广受欢迎的开源自动化服务器,用于构建、测试和部署软件应用程序

    如何设置 Jenkins 在系统启动时自动启动
    如何设置 Jenkins 在系统启动时自动启动

    简介 Jenkins作为一款备受青睐的开源自动化服务器,为开发人员构建、测试及部署软件项目提供了有力支持。在本教程里,我们将引领你完成Jenkins的配置,使其能在系统启动时自动开启,保证你的持续集成/持续交付(CI/CD)工作流程得以顺畅运行。 Jenkins 简介 Jenkins 是一款广受欢迎

    运维|devops|JenkinsPipeline流程构建
    运维|devops|JenkinsPipeline流程构建

    运维|devops|Jenkins Pipeline流程构建基于 jenkins Version 2.541.3 实操案例Jenkins Pipeline基于 Groovy 的持续交付流水线代码(Pipeline as Code)Pipeline script vs Pipeline script

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。