【RuoYi-SpringBoot3-Pro】:部署,怎么简单效率怎么玩

【RuoYi-SpringBoot3-Pro】:部署,怎么简单效率怎么玩

本文介绍了如何一人简单高效的部署系统,如果你习惯了在公司的 CI/CD 流程,觉得本文太 LOW,那么你是对的 😜

后端打包部署

RuoYi-SpringBoot3-Pro 默认集成了 wagon-maven-plugin 插件实现 FTP/SFTP 上传,在 pom.xml 根据实际需求修改配置:

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>wagon-maven-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <serverId>RuoyiSpringBoot3</serverId>
                    <fromFile>ruoyi-admin/target/RuoyiSpringBoot3.jar</fromFile>
                    <toFile>RuoyiSpringBoot3.jar</toFile>
<!--                    <fromDir>target</fromDir>-->
<!--                    <includes>*.jar,*.war</includes>-->
<!--                    <toDir>/</toDir>-->
                    <url>ftp://ip:21</url>
<!--                    <url>sftp://ip</url>-->
                </configuration>
                <executions>
                    <execution>
                        <id>upload-jar-to-ftp</id>
                        <phase>deploy</phase>
                        <goals>
                            <goal>upload-single</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.wagon</groupId>
                        <artifactId>wagon-ftp</artifactId>
                        <version>3.5.3</version>
<!--                        <groupId>org.apache.maven.wagon</groupId>-->
<!--                        <artifactId>wagon-ssh</artifactId>-->
<!--                        <version>3.5.3</version>-->
                    </dependency>
                </dependencies>
            </plugin>

使用前需要先配置 FTP 账号密码:
打开 ~/.m2/settings.xml(对于 Linux/MacOS)或 C:\Users\<YourUsername>\.m2\settings.xml(对于 Windows)

<settings>
    ...
    <servers>
        <server>
            <id>serverId</id> <!-- 必须与 pom.xml 中 serverId 匹配 -->
            <username>yourUsername</username>
            <password>yourPassword</password>
        </server>
    </servers>
    ...
</settings>

上述配置完成后,打包上传:
在这里插入图片描述

前端打包部署

RuoYi-SpringBoot3-ElementPlus 也内置了 FTP/SFTP 上传,配置文件在 ./ftp 目录下

方式一:FTP

使用 ftp-deploy 进行部署,配置文件 ftp.js 如下:

const config = {
  user: "", // FTP 用户名
  password: "", // FTP 密码
  host: "", // FTP 主机地址
  port: 21, // FTP 端口,默认是21
  localRoot: "./dist", // 本地要上传的目录,通常为 Vite 构建输出目录
  remoteRoot: "/dist", // 远程服务器上的目标路径
  include: ["*", "**/*"], // 要包含的文件或目录模式
  exclude: [], // 要排除的文件或目录模式
  deleteRemote: false, // 是否在上传前删除远程目录中的文件
  forcePasv: false, // 强制被动模式
};
方式二:SFTP

使用 ssh2-sftp-client 进行部署,配置文件 sftp.js 如下:

// 基本配置(可通过环境变量覆盖)
const config = {
  host: process.env.SFTP_HOST || "",
  port: Number(process.env.SFTP_PORT || 22),
  username: process.env.SFTP_USER || "",
  password: process.env.SFTP_PASSWORD || "",
  localDir: process.env.SFTP_LOCAL || path.resolve(process.cwd(), "dist"),
  remoteDir: process.env.SFTP_REMOTE || "/dist",
};

配置好后打包上传:

npm run build:prod

在这里插入图片描述

服务器配置

服务器直接安装 宝塔

FTP

在软件商店安装 FTP服务,添加账号密码,用于上面的前后端 FTP 配置

jar 部署

在网站->Java项目->添加Java项目,根据你的实际情况填写配置

Nginx 配置

location / {
            root   /www/wwwroot/项目名称/site;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }

   location ^~ /admin {
            alias   /www/wwwroot/项目名称/dist;
            try_files $uri $uri/ /admin/index.html;
            index  index.html index.htm;
        }
#location / {
#            root   /www/wwwroot/项目名称/dist;
#            try_files $uri $uri/ /index.html;
#            index  index.html index.htm;
#        }

        location /prod-api/ {
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://localhost:项目运行端口/;
            # ai stream
            proxy_buffering off;
            proxy_cache off;
            proxy_set_header Connection '';
            proxy_http_version 1.1;
            chunked_transfer_encoding off;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

jar 自动重启

jar 上传后还需要手动重启服务,这不符合我们的懒人形象。这里使用 PM2 监听 jar 文件变化来自动重启

pm2 start "java-service 项目名称 stop && java-service 项目名称 start" --watch "/www/wwwroot/项目名称/项目名称.jar" --no-autorestart --name 项目名称

结尾

至此以后前端打包部署只需要 npm run build:prod,后端只要打包后点击 wagon-upload:single 即可!

往期教程合集

RuoYi-SpringBoot3-Pro

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

undsky_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值