若依前后端分离打war包
时间: 2025-05-09 20:21:37 浏览: 27
### 若依前后端分离项目生成 WAR 包的方法
若依是一个基于 Spring Boot 和 Vue 的开源管理系统,支持前后端分离架构。为了将后端服务打包成 WAR 文件以便部署到 Servlet 容器(如 Tomcat),可以按照以下方法操作:
#### 修改 Maven 构建配置
默认情况下,Spring Boot 项目的构建产物是 JAR 文件。如果需要生成 WAR 文件,则需调整 `pom.xml` 中的相关配置。
以下是修改后的关键部分:
```xml
<packaging>war</packaging>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- 移除 spring-boot-starter-tomcat 默认嵌入式容器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 添加 tomcat 提供者依赖 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
```
上述更改会将项目的打包方式设置为 WAR,并移除嵌入式的 Tomcat 容器[^1]。
#### 调整应用入口类
为了让应用程序能够作为 WAR 文件运行于外部 Servlet 容器中,还需要调整主程序类的定义。具体如下:
```java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class RuoYiApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(RuoYiApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(RuoYiApplication.class, args);
}
}
```
通过继承 `SpringBootServletInitializer` 并重写 `configure` 方法,可以让项目兼容传统的 Servlet 部署环境[^2]。
#### 使用 Maven 打包命令
完成以上两步之后,在终端执行以下命令即可生成 WAR 文件:
```bash
mvn clean package -DskipTests
```
该命令会在目标路径下生成名为 `ruoyi-admin.war` 的文件。此文件可以直接部署至 Apache Tomcat 或其他支持的标准 Servlet 容器中[^3]。
---
### 注意事项
1. 如果计划继续使用 Docker 部署方案,则无需转换为 WAR 包形式;JAR 方式已经足够满足大多数需求。
2. 对于 CentOS 环境下的实际部署流程,请参考相关文档进一步确认服务器配置情况。
阅读全文
相关推荐


















