1.打包
开发初步完后,打包部署测试,首先记录一下部署方式。
ruoyi是maven分模块开发的模式,想要打包成war,首先ruoyi-admin模块的pom.xml,将原来的jar修改为war,代码如下:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>ruoyi</artifactId>
<groupId>com.ruoyi</groupId>
<version>3.8.9</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>war</packaging>
<artifactId>ruoyi-admin</artifactId>
<description>
web服务入口
</description>
<dependencies>
<!-- spring-boot-devtools -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!-- 表示依赖不会传递 -->
</dependency>
<!-- swagger3-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
</dependency>
<!-- 防止进入swagger页面报类型转换错误,排除3.0.0中的引用,手动增加1.6.2版本 -->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
<version>1.6.2</version>
</dependency>
<!-- Mysql驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 核心模块-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-framework</artifactId>
</dependency>
<!-- 定时任务-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-quartz</artifactId>
</dependency>
<!-- 代码生成-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-generator</artifactId>
</dependency>
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-flowable</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.15</version>
<configuration>
<fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<warName>${project.artifactId}</warName>
</configuration>
</plugin>
</plugins>
<finalName>${project.artifactId}</finalName>
</build>
</project>
我使用的idea2020社区版,在右侧的maven中我习惯先点击清理,然后点击打包。如图:
打包完成后,生成ruoyi-admin.war
然后打包前端,在命令行中输入:
npm run build:prod
前端打包完成后的程序都在dist文件夹中。
2.部署
后端部署,先把ruoyi-admin.war重命名为prod-api.war,然后拷贝到tomcat下面的webapps文件夹中。
然后把前端打包好的dist中的所有文件都拷贝到tomcat/webapps/root文件夹中。
需要注意的是前端在root文件中要新建一个WEB-INF的空文件夹,否则前端无法启动。
我是在华为云端部署,同步好数据库后,正常的若依框架开发的系统就可以正常启动了,但这次又集成了flowable,启动出现了问题。
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name
'flowableAppEngine': FactoryBean threw exception on object creation; nested exception is org.flowable
.common.engine.api.FlowableException: couldn't upgrade db schema: alter table ACT_RU_VARIABLE
add column SCOPE_ID_ varchar(255)
flowable启动失败解决方法
查询了资料,因为flowable在检索默认数据库表的时候,mysql默认是按照表名大写去查表,所以造成查不到,但这个问题在开发环境不存在。
按照资料中的解决方案,找到mysql安装目录下的my.cnf
编辑或增加
lower_case_table_names=1
我的my.cnf是空的,增加这一句,重启mysql服务。系统正常启动。
第一次学习使用ruoyi-flowable框架,记录一下,框架挺好用,非常感谢框架的作者们!!