简介
这里以 ruoyi-vue-plus 5.0分支 后端 、 前端为例 ,使用文档。 因为使用的是 jdk17
,所以我们需要使用 tomcat10下载
注意事项
后端
注意 tomcat10以下部署没问题,tomcat10部署的时候需要在tomcat文件夹下新建 webapps-javaee 文件夹,将jar包放在这个文件夹里
部署流程
- 前提:安装mysql、安装redis,安装存储服务minio linux 安装minio windoiws
- 安装tomcat
- 打包后端为
war
包 上传到 tomcat,打开ip:port/war包名
访问 ,有欢迎页面表示成功 - 打包前端
npm run build:prod
上传到 tomcatwebapps\ROOT
下 修改webapps\ROOT\WEB-INF
的web.xml
文件 - 访问
ip:port
测试
tomcat配置
- server.xml 配置启动端口号
<Connector port="8181" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxParameterCount="1000"
/>
- 配置日志编码
java.util.logging.ConsoleHandler.encoding = UTF-8
默认UTF-8
打印乱码,我们改成 GBK
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
java.util.logging.ConsoleHandler.encoding = GBK
后端
将打包方式改为 war
包, tomcat 只解析 war
包格式。
- 使用idea 工具栏
celan package
或者 控制台执行命令打包 在ruoyi-admin\tagget
文件夹下 生成ruoyi-amind.war
, 然后我们将包名改为prod-api.war
, tomcat启动后会解析成prod-api
文件夹,同时也是访问路径,跟前端一致 - 将war 包上传到tomcat
webapps-javaee
文件夹下,这个文件夹不存在,手动创建,tomcat10
在这个文件夹下解析。 - 启动tomcat
bin
目录下 startup.bat
- 启动完成后访问
ip:port\prod-api
例如localhost:8080\prod-api
, 出现以下图示,表示成功,接下来我们部署前端
前端部署
- 使用命令
npom run build:prod
打包前端 生成dist 文件夹,将文件夹内文件 复制到webapps\ROOT
文件夹内 - 修改
webapps\ROOT\WEB-INF
的web.xml
文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1" metadata-complete="true">
<display-name>Router for Tomcat</display-name>
<error-page>
<error-code>404</error-code>
<location>/index.html</location>
</error-page>
</web-app>
- 访问 ‘ip:port’ 测试 是否部署成功 例如 ‘localhost:8080’
代码配置
设置servlet初始化,不配置的话 tomcat无法启动服务
public class ServletInitializer extends SpringBootServletInitializer
{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
{
return application.sources(BootApplication.class);
}
}
pom文件配置
无web.xml的spring boot 需要添加,不然打包失败
参考
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<!--如果想在没有web.xml文件的情况下构建WAR,请设置为false。-->
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
其他配置
修改tomcat日志打印编码
- 编辑
tomcat/conf
文件夹下 logging.properties 原来是UTF-8
修改为GBK
java.util.logging.ConsoleHandler.encoding = GBK
- 端口号修改
tomcat/conf
文件夹下server.xml
将port
修改为你需要的端口号
<Connector port="8181" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
- 以ruoyi项目为例 修改war包为访问路径,接口请求为 ip:port/prod-api
将war包名称修改为prod-api.war
前端
- 打包项目
npm run bulid:prod
-
将生成的
dist
文件夹 放到tomcat/webapps
文件夹下 -
在
dist
文件夹下新建WEB-INF
文件夹 创建web.xml
文件, 内容如下
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1" metadata-complete="true">
<display-name>Router for Tomcat</display-name>
<error-page>
<error-code>404</error-code>
<location>/index.html</location>
</error-page>
</web-app>
- 修改server.xml
Host节点添加 一下内容
<Context path="/" docBase="dist的绝对路径(也可以写相对于webapps的路径)" reloadable="true" crossContext="true"></Context>
测试
启动tomcat/bin 下的 startup.bat,如果看到spring 的log 表示项目加载成功
访问ip:port 看跳转