springboot去除内嵌tomcat和打包在tomcat中运行需要做的步骤

时间:2022-06-03 14:32:01

去除内嵌tomcat和添加jsp依赖

去除内嵌tomcat

在springboot启动依赖中去除内嵌tomcat

        <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除嵌入式tomcat插件 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>

添加servlet和jsp依赖

        <dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency> <dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>

打包项目在tomcat运行需要的步骤

一定要设置成war包(好吧这是废话)

不需要jsp的pom配置

<build>
<!-- ⭐️打包后的包名 -->
<finalName>demo</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- ⭐️设定启动类 -->
<mainClass>com.example.DemoApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

需要jsp的pom配置

<build>
<finalName>demo</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.4.2.RELEASE</version>
<configuration>
<!-- ⭐️设定启动类 -->
<mainClass>com.example.DemoApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<!-- ⭐️JSP包打包到资源里 -->
<directory>src/main/webapp</directory>
<targetPath>META-INF/resources</targetPath>
<includes>
<include>**/**</include>
</includes>
</resource>
<resource>
<!-- ⭐️其他资打包到资源里 -->
<directory>src/main/resources</directory>
<includes>
<include>**/**</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>

为了tomcat运行项目后启动springboot需要新建一个类继承SpringBootServletInitializer类

public class TomCatApplication extends SpringBootServletInitializer {

			    @Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(DemoApplication.class);
} }

其实可以直接让Springboot启动类继承重写也是可以的

现在打包后放到tomcat容器运行即可,端口看tomcat的,访问名看tomcat容器显示的文件夹名