Jenkins 图形化点击操作完整流程(Jenkins机 + 远程业务服务器)

全程只讲你需要手动点击、填写、配置 的操作,分两大阶段:一次性全局配置(管理员只做1次)项目任务配置(每个Java项目配1次)日常发布(每次部署只点1个按钮)

前置说明

架构:

  1. Jenkins服务器:负责拉代码、Maven打包生成jar
  2. 远程业务服务器:接收jar、停止旧服务、启动新jar
    核心插件:Publish Over SSH(远程传文件+执行shell)、Maven IntegrationGit Plugin

第一阶段:一次性全局配置(管理员操作,仅初次搭建做)

步骤1:点击安装必备插件

  1. 左侧菜单点击【系统管理】→【插件管理】
  2. 切换到【可用插件】,搜索3个插件并勾选:
    • Maven Integration plugin
    • Publish Over SSH
    • Git Plugin
  3. 页面底部点击【安装 without restart】,等待全部安装成功
  4. 安装完成点击【返回首页】

步骤2:全局配置远程服务器SSH连接(关键)

  1. 左侧【系统管理】→【系统配置】,下拉页面找到 Publish over SSH 模块
  2. 找到【SSH Servers】→ 点击【Add】新增远程服务器信息,逐项填写:
    • Name:自定义名称(如prod-app-server,后面项目要选这个)
    • Hostname:远程服务器IP地址
    • Username:远程服务器登录账号(root/app)
    • Remote Directory:远程接收jar的根目录,填/opt/app(远程机器要提前建好这个文件夹)
  3. 点【Advanced】展开登录验证:
    • 勾选Use password authentication,输入远程服务器密码
  4. 右下角点击【Test Configuration】,出现Success代表连通成功
  5. 页面最底部点击【保存】,全局配置完成

第二阶段:新建/配置Java项目任务(每个项目配置1次)

步骤1:新建自由风格项目

  1. Jenkins首页左侧点击【新建任务】
  2. 输入任务名称 → 选择【构建一个自由风格的软件项目】→ 点击【确定】进入项目配置页

步骤2:源码管理(拉Git代码)

  1. 下滑到【源码管理】,选择Git
  2. Repository URL:填项目Git地址(gitee/gitlab/github)
  3. Credentials:点击【添加】输入Git账号密码/密钥,选中凭证
  4. Branches to build:填要打包的分支,如*/master
  5. 无需保存,继续往下配置

步骤3:构建步骤(Maven打包生成jar)

  1. 找到【构建】模块 → 点击【增加构建步骤】→ 选择【调用顶层Maven目标】
  2. Goals 输入打包命令:
bash 复制代码
clean package -DskipTests
  1. 保存构建步骤,继续下滑

步骤4:构建后操作(上传jar到远程+启动服务,核心部署步骤)

  1. 找到【构建后操作】→ 点击【增加构建后操作步骤】
  2. 下拉选择:Send files or execute commands over SSH
  3. SSH Server:下拉选中第一阶段配置好的远程服务器名称(prod-app-server)
  4. 点击【Advanced】展开文件传输配置,填写3个核心参数:
    • Source files:target/*.jar(Jenkins本地打包生成的jar路径)
    • Remove prefix:target(上传时自动去掉target文件夹,远程直接放jar)
    • Remote directory:/opt/app(和全局配置的远程目录一致)
  5. Exec command(远程服务器执行启停脚本,直接复制):
shell 复制代码
# 1. 杀掉旧java进程
PID=$(ps -ef | grep java -jar /opt/app/*.jar | grep -v grep | awk '{print $2}')
if [ -n "$PID" ];then kill -9 $PID;fi
# 2. 后台启动新jar,输出日志
nohup java -jar /opt/app/*.jar --spring.profiles.active=prod > /opt/app/app.log 2>&1 &
sleep 3
# 健康检测(可选,验证启动)
curl http://127.0.0.1:8080/actuator/health
  1. 页面最底部点击【保存】,项目一次性配置全部完成

第三阶段:日常发布(每次更新代码只需要点1个按钮)

  1. Jenkins首页点击你的项目名称,进入项目详情页
  2. 页面左侧直接点击【Build Now】(仅这一步手动点击)
  3. 自动执行全流程,无需任何手动操作:
    1. Jenkins拉取Git最新代码
    2. Maven执行打包,生成target/*.jar
    3. SSH上传jar到远程/opt/app
    4. 远程执行脚本:停旧服务→启动新jar
  4. 查看日志:点击构建记录#1/#2 → 【控制台输出】,看是否部署成功

区分:哪些是一次性配置、哪些是每次发布要操作

1. 只做1次(搭环境时)

  • 插件安装
  • 系统配置SSH远程服务器

2. 每个新项目做1次(新增服务时)

  • 新建任务、配置Git源码
  • 配置Maven打包步骤
  • 配置SSH上传+远程启动脚本

3. 每次迭代发布(日常操作)

  • 仅点击项目内【Build Now】

补充时序图(对应点击操作流程)

远程业务服务器 Jenkins服务端 JenkinsWeb页面 运维/开发人员 远程业务服务器 Jenkins服务端 JenkinsWeb页面 运维/开发人员 #mermaid-svg-78aP9eJmxHO3Wt4j{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-78aP9eJmxHO3Wt4j .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-78aP9eJmxHO3Wt4j .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-78aP9eJmxHO3Wt4j .error-icon{fill:#552222;}#mermaid-svg-78aP9eJmxHO3Wt4j .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-78aP9eJmxHO3Wt4j .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-78aP9eJmxHO3Wt4j .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-78aP9eJmxHO3Wt4j .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-78aP9eJmxHO3Wt4j .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-78aP9eJmxHO3Wt4j .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-78aP9eJmxHO3Wt4j .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-78aP9eJmxHO3Wt4j .marker{fill:#333333;stroke:#333333;}#mermaid-svg-78aP9eJmxHO3Wt4j .marker.cross{stroke:#333333;}#mermaid-svg-78aP9eJmxHO3Wt4j svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-78aP9eJmxHO3Wt4j p{margin:0;}#mermaid-svg-78aP9eJmxHO3Wt4j .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-78aP9eJmxHO3Wt4j text.actor>tspan{fill:black;stroke:none;}#mermaid-svg-78aP9eJmxHO3Wt4j .actor-line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-78aP9eJmxHO3Wt4j .innerArc{stroke-width:1.5;stroke-dasharray:none;}#mermaid-svg-78aP9eJmxHO3Wt4j .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg-78aP9eJmxHO3Wt4j .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg-78aP9eJmxHO3Wt4j #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg-78aP9eJmxHO3Wt4j .sequenceNumber{fill:white;}#mermaid-svg-78aP9eJmxHO3Wt4j #sequencenumber{fill:#333;}#mermaid-svg-78aP9eJmxHO3Wt4j #crosshead path{fill:#333;stroke:#333;}#mermaid-svg-78aP9eJmxHO3Wt4j .messageText{fill:#333;stroke:none;}#mermaid-svg-78aP9eJmxHO3Wt4j .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-78aP9eJmxHO3Wt4j .labelText,#mermaid-svg-78aP9eJmxHO3Wt4j .labelText>tspan{fill:black;stroke:none;}#mermaid-svg-78aP9eJmxHO3Wt4j .loopText,#mermaid-svg-78aP9eJmxHO3Wt4j .loopText>tspan{fill:black;stroke:none;}#mermaid-svg-78aP9eJmxHO3Wt4j .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-78aP9eJmxHO3Wt4j .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-78aP9eJmxHO3Wt4j .noteText,#mermaid-svg-78aP9eJmxHO3Wt4j .noteText>tspan{fill:black;stroke:none;}#mermaid-svg-78aP9eJmxHO3Wt4j .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg-78aP9eJmxHO3Wt4j .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg-78aP9eJmxHO3Wt4j .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg-78aP9eJmxHO3Wt4j .actorPopupMenu{position:absolute;}#mermaid-svg-78aP9eJmxHO3Wt4j .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-svg-78aP9eJmxHO3Wt4j .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-78aP9eJmxHO3Wt4j .actor-man circle,#mermaid-svg-78aP9eJmxHO3Wt4j line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-svg-78aP9eJmxHO3Wt4j :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 一次性配置操作 日常发布操作 点击系统管理→插件管理安装SSH/Maven插件系统配置→Publish Over SSH添加远程服务器IP密码新建任务,配置Git、Maven打包、SSH部署脚本并保存进入项目,点击【Build Now】按钮触发构建任务git拉取代码 + mvn打包生成jarSSH上传target/*.jar至/opt/app执行shell脚本 停旧进程、启动新jar返回启动日志/健康检测结果构建完成,展示控制台输出日志页面显示构建成功/失败状态

常见点击排错操作

  1. 部署失败:点击对应构建号 → 【控制台输出】查看报错
  2. SSH连不上远程服务器:回到系统配置,点【Test Configuration】重测连通性
  3. Jar找不到:检查构建步骤Maven命令是否正确,查看控制台打包日志
  4. 远程启动失败:登录远程服务器手动执行Exec command里的脚本测试