Spring Boot 项目部署实战:WAR 包部署与 Tomcat 安装

2024-08-10 21:37:49 浏览数 (2)

引言

Spring Boot 是一个非常流行的 Java 框架,它简化了基于 Spring 的应用程序的创建和部署过程。虽然 Spring Boot 默认支持将应用程序打包成可执行的 JAR 文件,但在某些情况下,我们可能需要将其打包成 WAR 文件以便部署到传统的 Java 应用服务器(如 Tomcat)。本文将详细介绍如何将 Spring Boot 项目打包成 WAR 文件,并在 Tomcat 上进行部署。

修改 pom.xml 文件

首先,我们需要修改项目的 pom.xml 文件,以便将其配置为生成 WAR 文件。

代码语言:xml复制
<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">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>my-spring-boot-app</artifactId>
    <version>1.0-SNAPSHOT</version>

    <packaging>war</packaging> <!-- 修改这里 -->

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.4</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- 其他依赖 -->
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

排除嵌入式 Tomcat

由于我们要将应用程序部署到外部的 Tomcat 服务器,因此需要排除 Spring Boot 内置的 Tomcat。

代码语言: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 MySpringBootApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(MySpringBootApplication.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(MySpringBootApplication.class).exclude({EmbeddedServletContainerCustomizer.class});
    }
}

打包 WAR 文件

在项目根目录下运行以下 Maven 命令来打包 WAR 文件:

代码语言:bash复制
mvn clean package

打包完成后,你会在 target 目录下看到生成的 WAR 文件,例如 my-spring-boot-app-1.0-SNAPSHOT.war

安装和配置 Tomcat

在将 Spring Boot 项目部署到 Tomcat 之前,你需要确保已经正确安装并配置了 Tomcat 服务器。以下是安装和配置 Tomcat 的步骤:

1. 下载 Tomcat

首先,从 Apache Tomcat 官方网站 下载适合你操作系统的 Tomcat 版本。通常,你需要下载最新的稳定版本。

2. 解压 Tomcat

将下载的 Tomcat 压缩包解压到你选择的目录。例如,在 Linux 或 macOS 上,你可以使用以下命令:

代码语言:bash复制
tar -xvzf apache-tomcat-x.y.z.tar.gz -C /path/to/your/directory

在 Windows 上,你可以使用解压缩工具(如 7-Zip)将压缩包解压到指定目录。

Tomcat目录结构:

代码语言:js复制
 .
 ├── bin  ##存放启动、关闭tomcat或者其它功能的脚本(.bat文件和.sh文件)
 ├── BUILDING.txt
 ├── conf  ##存放tomcat配置相关的文件
 ├── CONTRIBUTING.md
 ├── lib  ##存放Web应用能访问的JAR包
 ├── LICENSE
 ├── logs  ##存放tomcat日志文件
 ├── NOTICE
 ├── README.md
 ├── RELEASE-NOTES
 ├── RUNNING.txt
 ├── temp  ##临时文件
 ├── webapps  ##Web应用程序的跟目录
 └── work  ##用以产生有JSP编译出的Servlet的.java和.class文件

3. 配置环境变量(可选)

为了方便在命令行中使用 Tomcat,你可以配置环境变量。在 Linux 或 macOS 上,编辑 ~/.bashrc~/.bash_profile 文件,添加以下内容:

代码语言:bash复制
export CATALINA_HOME=/path/to/tomcat
export PATH=$PATH:$CATALINA_HOME/bin

在 Windows 上,右键点击“计算机”或“此电脑”,选择“属性”,然后点击“高级系统设置”>“环境变量”。在“系统变量”部分,点击“新建”,添加以下变量:

  • 变量名:CATALINA_HOME
  • 变量值:Tomcat 安装目录(例如 C:pathtotomcat
  • 变量名:PATH
  • 变量值:%PATH%;�TALINA_HOME%bin

4. 启动和停止 Tomcat

现在,你可以使用以下命令启动和停止 Tomcat:

代码语言:bash复制
# 启动 Tomcat
startup.sh

# 停止 Tomcat
shutdown.sh

在 Windows 环境下,使用以下命令:

代码语言:cmd复制
# 启动 Tomcat
startup.bat

# 停止 Tomcat
shutdown.bat

5. 验证 Tomcat 安装

启动 Tomcat 后,打开浏览器并访问 http://localhost:8080。如果看到 Tomcat 的欢迎页面,说明安装成功。

6. 配置 Tomcat

Tomcat 的主要配置文件位于 conf 目录下,包括 server.xmlcontext.xmlweb.xml 等。你可以根据需要修改这些文件以满足特定需求。例如,你可以更改端口号、添加虚拟主机或配置 SSL 等。

通过以上步骤,你已经成功安装并配置了 Tomcat 服务器。现在,你可以将 Spring Boot 项目打包成 WAR 文件,并将其部署到 Tomcat 上运行。

部署到 Tomcat

将生成的 WAR 文件复制到 Tomcat 的 webapps 目录下。Tomcat 会自动解压并部署该 WAR 文件。

代码语言:bash复制
cp target/my-spring-boot-app-1.0-SNAPSHOT.war /path/to/tomcat/webapps/

启动 Tomcat

启动 Tomcat 服务器。你可以使用以下命令启动 Tomcat(假设 Tomcat 安装在 /path/to/tomcat 目录下):

代码语言:bash复制
/path/to/tomcat/bin/startup.sh

或者在 Windows 环境下:

代码语言:cmd复制
C:pathtotomcatbinstartup.bat

访问应用程序

启动 Tomcat 后,你可以通过浏览器访问你的 Spring Boot 应用程序。默认情况下,URL 应该是 http://localhost:8080/my-spring-boot-app-1.0-SNAPSHOT/

结语

通过以上步骤,你已经成功地将 Spring Boot 项目打包成 WAR 文件,并了解了如何在 Tomcat 上进行部署,希望本文对你有所帮助。

0 人点赞