📅  最后修改于: 2023-12-03 15:05:15.657000             🧑  作者: Mango
在 Spring Boot 中,可以使用内嵌的 Tomcat 进行开发和测试,但是在生产环境中,通常需要使用独立的 Tomcat 实例来部署应用程序。本文将介绍如何使用 Tomcat 部署 Spring Boot 项目。
首先,需要将 Spring Boot 项目打成 WAR 文件。在 pom.xml 文件中添加以下配置:
<packaging>war</packaging>
<dependencies>
<!-- 添加 Tomcat 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<!-- 配置 Maven 插件 -->
<build>
<plugins>
<!-- 添加 Maven War 插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory>
<warName>${project.build.finalName}</warName>
</configuration>
</plugin>
<!-- 添加 Maven Dependency 插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.0.2</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<includeScope>runtime</includeScope>
<outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/lib</outputDirectory>
<stripVersion>true</stripVersion>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
上述配置中:
执行 mvn clean package 命令,生成可执行的 WAR 文件。
将生成的 WAR 文件,部署到 Tomcat 的 webapps 目录中,启动 Tomcat 即可访问应用程序。
可以在 Tomcat 的 conf 目录中,修改 server.xml 文件,配置 Tomcat 的端口号等信息。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
如果想要支持 HTTPS 协议,可以在 Tomcat 的 conf 目录中,创建 server.keystore 文件。
执行以下命令,生成 server.keystore 文件:
keytool -genkeypair -alias tomcat -keyalg RSA -keysize 2048 -keystore server.keystore -validity 3650
将 server.keystore 文件,复制到 Tomcat 的 conf 目录中。
修改 Tomcat 的 conf 目录中的 server.xml 文件,添加以下配置:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/path/to/tomcat/conf/server.keystore"
keystorePass="password" />
然后,启动 Tomcat,即可通过 HTTPS 协议访问应用程序。
如果需要指定 Tomcat 版本号,可以在 pom.xml 文件中添加以下配置:
<properties>
<tomcat.version>9.0.21</tomcat.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>${tomcat.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-el</artifactId>
<version>${tomcat.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-websocket</artifactId>
<version>${tomcat.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
上述配置指定了 Tomcat 版本号为 9.0.21。需要注意的是,tomcat-embed-core、tomcat-embed-el 和 tomcat-embed-websocket 依赖版本号应该与 tomcat.version 相同。
本文简单介绍了如何使用 Tomcat 部署 Spring Boot 项目,以及指定 Tomcat 版本号和支持 HTTPS 协议。