睿阳知识库 睿阳知识库
首页
  • npm库配置
  • PC端

    • npm常用命令
    • vue问题记录
    • SEO基础知识及优化
    • 禁止别人调试我的前端页面代码
  • 移动端

    • 小程序
    • Risun.js使用说明
  • Java

    • Maven库配置
    • RSP开发框架
    • RSP框架插件
  • .NET

    • Nuget库配置
  • Python

    • Pypi库配置
  • 常见问题

    • Word转Pdf字体错乱
    • 使用Jacob进行Word导出PDF
  • 自动部署
  • 前端带路径
  • Linux

    • 应用部署
  • Windows

    • 应用部署
  • 视频监控
  • MySQL系列~
  • 应用高可用
  • 静态代码扫描
  • OpenSSH版本升级
  • 区块链~
  • 软件过程文档目录
  • 著作权申请须知及申报示例
  • 项目申报技巧
  • 项目竣工资料清单
  • 科技项目申报流程及注意事项
  • 初级职称申报
  • 产品需求文档基础知识
  • 产品经理需了解的技术知识
  • 墨刀原型设计指南
  • 文档规范
  • 文档规范
  • 投标工作总结(一)
  • 科技项目申报心得体会
  • 数字孪生
  • AI
  • RSP基础平台
  • RMCloud
  • 区块链
  • 网络态势感知
  • 国产化
  • 数据湖
  • 贡献度
  • 文档编写说明
  • Markdown教程
工作链接
首页
  • npm库配置
  • PC端

    • npm常用命令
    • vue问题记录
    • SEO基础知识及优化
    • 禁止别人调试我的前端页面代码
  • 移动端

    • 小程序
    • Risun.js使用说明
  • Java

    • Maven库配置
    • RSP开发框架
    • RSP框架插件
  • .NET

    • Nuget库配置
  • Python

    • Pypi库配置
  • 常见问题

    • Word转Pdf字体错乱
    • 使用Jacob进行Word导出PDF
  • 自动部署
  • 前端带路径
  • Linux

    • 应用部署
  • Windows

    • 应用部署
  • 视频监控
  • MySQL系列~
  • 应用高可用
  • 静态代码扫描
  • OpenSSH版本升级
  • 区块链~
  • 软件过程文档目录
  • 著作权申请须知及申报示例
  • 项目申报技巧
  • 项目竣工资料清单
  • 科技项目申报流程及注意事项
  • 初级职称申报
  • 产品需求文档基础知识
  • 产品经理需了解的技术知识
  • 墨刀原型设计指南
  • 文档规范
  • 文档规范
  • 投标工作总结(一)
  • 科技项目申报心得体会
  • 数字孪生
  • AI
  • RSP基础平台
  • RMCloud
  • 区块链
  • 网络态势感知
  • 国产化
  • 数据湖
  • 贡献度
  • 文档编写说明
  • Markdown教程
工作链接
  • Linux

  • Windows

    • Windows 应用部署
      • 一. 环境准备
      • 二. 服务化部署
        • 1. 提供健康检查Endpoint
        • 2. 下载WinSw
        • 3. 部署后台API
        • 4. 部署前端页面
        • 5. 批处理脚本
      • 三. 配置自动化部署
      • 四. 常见问题
        • 1. xml中的特殊字符
  • 自动化部署
  • 前端带路径
  • 部署
  • Windows
孙超
2022-07-20
目录

Windows 应用部署

# 一. 环境准备

提示

  • 服务器必须是云主机,并且要和Jenkins Master服务器网络互通
  • 服务器要加入到Jenkins集群中
  • 服务器上要事先安装 JDK1.8、Maven3.6+、Node16+,并加入到系统的PATH中
  • 若要部署前端页面,须事先安装nignx,并做好配置

# 二. 服务化部署

统一将项目的后台API服务以Windows系统服务的方式,来部署运行。

# 1. 提供健康检查Endpoint

在项目中提供健康检查Endpoint,可匿名访问,例如

public class DemoController {
    @GetMapping("/health_check")
    public String healthCheck() {
      return "UP";
    }
}

// 在SecurityConfig.java中设置匿名访问
.antMatchers("/health_check").anonymous()

# 2. 下载WinSw

WinSw是一个可以将任何应用程序注册成服务的软件,可以在Github中进行下载,点击下载

# 3. 部署后台API

在系统中创建一个目录用来进行部署,本文档中该目录为 C:\Deploy

  1. 创建项目目录(本例中项目为app)

    进入C:\Deploy,创建app文件夹

  2. 创建服务

    进入C:\Deploy\app目录,创建文件夹logs、files、apikeys

  • 将项目后台API服务的 jar 包放到该目录下,本例为 app.jar

  • 将WinSW-x64.exe复制到 C:\Deploy\app 下,并重命名为appService.exe

  • 服务配置,创建appService.xml,内容如下

<service>
  <id>appService</id>
  <name>appService</name>
  <description>XXX Project API Service</description>
  <logpath>%BASE%\logs</logpath>
  <log mode="roll-by-size">
    <sizeThreshold>10240</sizeThreshold>
    <keepFiles>8</keepFiles>
  </log>
  <executable>java</executable>
  <arguments>
    -Xms1024m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m
    -Dfile.encoding=utf-8
    -Djava.security.egd=file:/dev/./urandom
    -jar "%BASE%\app.jar"
    --server.port=8100
    --ruoyi.profile="%BASE%\files"
    --ruoyi.apiKey="%BASE%\apikeys"
    --spring.redis.host="127.0.0.1"
    --spring.redis.port=6379
    --spring.redis.password= 
    ... <其他项目配置>
  </arguments>
</service>
  • 使用cmd,用cd命令转到C:\Deploy\app
    • 执行命令安装服务 appService.exe install 安装服务

    • 查看系统服务 系统服务

    • 执行命令启动服务 appService.exe start 启动服务

:: 命令说明
:: 安装服务命令
appService.exe install

:: 卸载服务命令
appService.exe uninstall

:: 启动服务命令
appService.exe start

:: 停止服务命令
appService.exe stop

:: 重新启动服务命令
appService.exe restart

# 4. 部署前端页面

  • 在 C:\Deploy\app 下,创建文件夹 html

  • 将前端构建后的文件放到 html 目录下

  • 将nginx中配置 Location root,修改为 C:\Deploy\app\html

  • 启动 nginx

# 5. 批处理脚本

  • 在 C:\Deploy\app 下,创建 deploy.bat,内容如下
:: 后端API
C:
cd C:\Deploy\app
appService.exe stop
timeout /T 3 /NOBREAK
del app.jar
move new_app.jar app.jar
appService.exe start

:: 前端页面
7z x view.zip
rmdir /s/q html
move dist html
del view.zip

# 三. 配置自动化部署

联系孙超,进行自动化部署配置

# 四. 常见问题

# 1. xml中的特殊字符

创建(或启动)服务时,当xml中存在特殊字符时,会导致服务无法正常启动。需要将XML中的特殊字符进行转义。

例如:

<!-- 错误 -->
jdbc:mysql://localhost:3306/mydb?characterEncoding=utf8&useSSL=false
<!-- 正确 -->
jdbc:mysql://localhost:3306/mydb?characterEncoding=utf8&amp;useSSL=false

XML转义字符:

转义字符 符号 名称
&amp; & 和
&lt; < 小于
&gt; > 大于
&apos; ' 省略号
&quot; " 引号
Linux 应用部署
自动化部署

← Linux 应用部署 自动化部署→

最近更新
01
vue问题记录
10-11
02
RSP进度
10-09
03
贡献度
09-28
更多文章>
Copyright © 2014-2025 甘肃睿阳科技有限公司 陇ICP备15001783-1号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式