742 字
4 分钟
【2026年西大毕业册开发前置准备】后端项目部署
Spring Boot 项目通过 GitHub Actions 实现自动化部署
在之前的静态博客部署过程中,相关步骤给了我一定的启发。例如,将代码上传到 GitHub,然后在服务器端通过脚本定时拉取代码、启动项目的操作。这些操作应该也可以适用于后端的 Spring Boot 项目,无非就是后端的部署更麻烦一点,需要多几行命令,这种自动化流程的部署比我之前开发项目时手动打包 jar 包无疑方便很多。
于是我去搜寻了相关资料,发现这方面的操作现在已经比较成熟,Spring Boot + 服务器 CI/CD 架构就是其中一个很好的选择。
整体流程
你本地 git push↓GitHub Actions(云端)1. 拉代码2. mvn build(生成 jar)3. scp jar 到服务器4. ssh 到服务器重启应用 ↓ 服务器只做一件事:运行 jar那么,按照这些步骤,我就简单通过一个 demo 进行测试。
实施步骤
1. 创建本地项目并添加测试接口
首先在本地创建一个 Spring Boot 项目,并添加一个简单的接口用于测试:
@RequestMapping("/hello")@ResponseBodypublic String hello() { return "Hello, world!";}当访问 /hello 接口时,返回结果为:Hello, world!
2. 服务器端配置
(1)确认 Java 环境
java -version如果没有安装 Java(以 Ubuntu 为例):
apt updateapt install -y openjdk-17-jre(2)准备项目目录
/root/test├── app.jar # GitHub Actions 上传├── app.log # 运行日志└── start.sh # 启动 / 重启脚本(3)编写启动脚本 start.sh
#!/bin/bashset -e
APP_DIR=/root/testAPP_JAR=app.jar
cd $APP_DIR
echo "===> Stop old process"pkill -f $APP_JAR || true
echo "===> Start new process"nohup java -jar $APP_DIR/$APP_JAR > app.log 2>&1 &别忘了授权:
chmod +x ~/test/start.sh(4)生成服务器 SSH Key
ssh-keygen -t ed25519 -C "github-actions"# 一路回车
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keyschmod 600 ~/.ssh/authorized_keys公钥已加入授权,私钥留着下一步用。
3. GitHub 仓库配置
打开你的仓库 → Settings → Secrets and variables → Actions
点击 New repository secret,填写:
| 名称 | 内容 |
|---|---|
| SERVER_HOST | 你的服务器 IP(例:123.45.67.89) |
| SERVER_USER | root |
| SERVER_SSH_KEY | 打开 /root/.ssh/id_ed25519,复制完整内容(包括 BEGIN/END 部分) |
4. 创建 GitHub Actions 工作流
在 Spring Boot 项目仓库中新建文件:.github/workflows/deploy.yml
name: Build and Deploy Spring Boot JAR
on: push: branches: - main
jobs: deploy: runs-on: ubuntu-latest
steps: - name: Checkout code uses: actions/checkout@v4
- name: Set up JDK uses: actions/setup-java@v4 with: distribution: temurin java-version: 17
- name: Build with Maven run: mvn clean package -DskipTests
- name: Upload JAR to server uses: appleboy/scp-action@v0.1.7 with: host: ${{ secrets.SERVER_HOST }} username: ${{ secrets.SERVER_USER }} key: ${{ secrets.SERVER_SSH_KEY }} source: "target/*.jar" target: "/root/test/" strip_components: 1
- name: Restart app on server uses: appleboy/ssh-action@v1.0.0 with: host: ${{ secrets.SERVER_HOST }} username: ${{ secrets.SERVER_USER }} key: ${{ secrets.SERVER_SSH_KEY }} script: | chmod +x /root/test/start.sh /root/test/start.sh5. 结果查看
部署成功后,服务器成功启动了项目。

总结
通过上述配置,每次向主分支推送代码时,GitHub Actions 会自动构建项目并将生成的 JAR 文件部署到服务器,然后重启应用。这种方式大大简化了部署流程,提高了开发效率。
【2026年西大毕业册开发前置准备】后端项目部署
http://hgqwd.icu/posts/biyece1/ 部分信息可能已经过时









