将Spring Boot Web应用部署到Tomcat服务器

部署的目标平台


操作系统 Windows 10,Ubuntu Linux 18.04.5

JDK版本 Open JDK 16

Tomcat版本 Tomcat 10.0.12,Tomcat 10.0.13

Spring Boot版本 2.5.6

 

Maven项目文件(pom.xml)的配置


请特别注意下面文件中的注释内容。

 1 <project ......>
 2 
 3     .......
 4 
 5     <parent>
 6         <groupId>org.springframework.boot</groupId>
 7         <artifactId>spring-boot-starter-parent</artifactId>
 8         <version>2.5.6</version>
 9         <relativePath/>
10     </parent>
11 
12     <properties>
13         <!-- 此处的版本号不应高于系统中JDK的版本 -->
14         <java.version>11</java.version>
15     </properties>
16 
17     <!-- 要部署到外部Tomcat服务器,此处必须为war -->
18     <packaging>war</packaging>
19 
20     <dependencies>
21         <dependency>
22             <groupId>org.springframework.boot</groupId>
23             <artifactId>spring-boot-starter-web</artifactId>
24              <exclusions>  
25                  <!-- 在部署到外部Tomcat时,要排除使用Spring Boot内置的Tomcat -->
26                 <exclusion>  
27                     <groupId>org.springframework.boot</groupId>  
28                     <artifactId>spring-boot-starter-tomcat</artifactId>  
29                 </exclusion>  
30             </exclusions>  
31           </dependency>
32     
33         ......
34 
35     </dependencies>
36 
37     <build>
38           <!-- 此处可以对生成的war包进行重命名,比如下面的名字设置将会生成messagepub.war文件 -->
39           <finalName>messagepub</finalName>
40         <plugins>
41             <plugin>
42                 <groupId>org.springframework.boot</groupId>
43                 <artifactId>spring-boot-maven-plugin</artifactId>
44             </plugin>
45         </plugins>
46     </build>
47 
48 </project>

 

扩展SpringBootServletInitializer并重写configure方法



 1 ......
 2 
 3 @SpringBootApplication
 4 public class App extends SpringBootServletInitializer {
 5 
 6     public static void main(String[] args) {
 7         SpringApplication.run(App.class, args);
 8     }
 9 
10     @Override
11     protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
12         return application.sources(App.class);
13     }
14 }

 

构建


以上两步(将pom文件设置好,并重写了SpringBootServletInitializer.configure方法)之后,就可以构建了。

在Eclipse中右键点击项目,然后在弹出菜单里,选择Run As ==> maven buildGoals设置为clean package。如果不用Eclipse构建,那么在项目根目录下运行相应的maven命令行工具也可以。

构建完成后,会在{{项目根目录}}/target目录下生成可部署的的war包。

 

部署到Tomcat


构建生成war包之后,就可以部署到Tomcat了。具体步骤如下:

  1. 在Tomcat的跟目录下新建一个名为webapps-javaee的文件夹;
  2. 将上一步构建生成的war包文件拷贝到这个新建的webapps-javaee目录下,如下图;
  3. 重启Tomcat服务器,然后就可以通过浏览器访问刚部署的应用了。

 参考链接


 Deploy a Spring Boot REST App as a WAR to Tomcat 10 - Apps Developer Blog

 

posted @ 2021-11-23 17:11  码农哈里  阅读(718)  评论(0)    收藏  举报