侧边栏壁纸
  • 累计撰写 18 篇文章
  • 累计创建 0 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

JPOM 实战(二):从 Git 提交到自动部署

大锤灬
2026-01-22 / 0 评论 / 0 点赞 / 5 阅读 / 0 字

如果说上一篇解决的是:

“JPOM 怎么活下来,并且能被正常访问”

那这一篇要解决的就是:

“JPOM 到底怎么帮我少干活”

目标非常明确:

  • 提交代码

  • 自动构建

  • 自动部署

  • 不再手动 scp / restart / pray

一、整体流程先给你画清楚(重要)

先说结论,再讲细节。

JPOM 在 CI/CD 中的位置

Git 仓库
↓(代码提交)
JPOM Server

构建(本地 or 远程)

部署到目标服务器

启动 / 重启服务

JPOM 的核心价值在于三点:

  1. 构建和部署解耦

  2. Server 与 Node 分离

  3. 不用侵入你现有服务器结构

二、本地构建的两种部署模式,你必须选一个

JPOM 支持两种常见部署方式,新手一定要分清。

模式一:本地部署(最简单)

适合场景:

  • JPOM Server 就在目标服务器上

  • 构建机 = 运行机

  • 小项目 / 单机部署

JPOM Server

├─ 拉代码

├─ mvn package

├─ 覆盖 jar

└─ 重启服务

优点

  • 配置最少

  • 不涉及 SSH

  • 最不容易出问题

缺点

  • 构建过程占用线上服务器资源

模式二:SSH 远程部署(推荐)

适合场景:

  • 构建机 ≠ 运行机

  • 多台服务器

  • 正式环境 / 多环境部署

JPOM Server

├─ 拉代码

├─ mvn package

├─ scp 到远程服务器

└─ SSH 执行启动脚本

优点

  • 架构清晰

  • 可扩展

  • 更接近“正经 CI/CD”

缺点

  • 第一次配置稍微多一点点

👉 下面我两种都写,但重点放在 SSH 远程部署

三、准备工作(不然你会一直报错)

1️⃣ Git 仓库准备

JPOM 支持:

  • GitHub

  • GitLab

  • Gitee

  • 自建 Git

要求只有一个:

JPOM Server 能拉到代码

如果是私有仓库,提前准备:

  • 用户名 + Token

  • 或 SSH Key


2️⃣ Maven / Node 环境(按需)

在 JPOM Server 所在机器确认:

mvn -v
node -v
npm -v

没有就装,别指望 JPOM 给你变出来。

四、JPOM 中配置「代码仓库」

路径:

JPOM → 系统管理 → 仓库管理 → 新增仓库

关键配置说明:

  • 仓库类型:Git

  • 拉取方式:HTTPS(新手更稳)

  • 分支:main / master

  • 凭证:Token / 用户名密码

测试连接成功即可。

五、构建方式一:本地构建 + 本地部署

1️⃣ 新建构建任务

路径:

项目管理 → 构建 → 新增构建

核心配置:

  • 构建方式:本地构建

  • 代码仓库:选择刚才创建的仓库

  • 构建命令示例:

mvn clean package -DskipTests

2️⃣ 构建产物配置

假设你的 jar 在:

target/app.jar

配置:

  • 构建产物路径:target/app.jar

  • 发布目录:/opt/app/

3️⃣ 发布后执行命令

sh restart.sh

到这里,其实已经是一个完整的 CI 流程了。

六、构建方式二:SSH 远程部署(重点)

这是真正值得用 JPOM 的地方

⚠️ 使用这个方式之前,需要先在远程服务器上安装jpom-agent端,获取到密码/私钥。

1️⃣ 添加 SSH 节点

路径:

节点管理 → SSH 节点 → 新增

填写:

  • 主机 IP

  • 端口(默认 22)

  • 用户名

  • 密码 / 私钥

测试连接成功即可。

2️⃣ 构建配置(还是本地)

构建命令仍然是:

mvn clean package -DskipTests

3️⃣ 发布方式选择「SSH」

关键配置:

  • 发布方式:SSH

  • 目标节点:选择刚才配置的节点

  • 目标路径:

/opt/app/app.jar

4️⃣ 远程执行命令

cd /opt/app
sh restart.sh

JPOM 会自动做三件事:

  1. 上传 jar

  2. 覆盖旧文件

  3. SSH 执行命令

七、强烈建议你做的三件事(血泪经验)

1️⃣ 重启脚本一定要“可重复执行”

不要写成:

kill -9 xxxx
java -jar app.jar

要写成:

pid=$(ps -ef | grep app.jar | grep -v grep | awk '{print $2}')
[ -n "$pid" ] && kill $pid
nohup java -jar app.jar > app.log 2>&1 &

2️⃣ 构建日志一定要看

JPOM 构建失败,99% 原因在日志里

不是 JPOM 的锅,是:

  • Maven 依赖

  • 网络

  • JDK 版本

  • 权限

3️⃣ 先跑通测试环境,再动生产

JPOM 很容易“部署得太顺手”,
一不小心就 show time。

八、总结(这一套你可以长期用)

  • JPOM 不是玩具

  • 宝塔 + JPOM = 非常适合中小团队

  • SSH 远程部署是正确打开方式

  • 一旦跑通,基本告别手动部署

0

评论区