配置Spring Boot将应用程序打包成WAR

x33g5p2x  于2022-09-30 转载在 Spring  
字(2.6k)|赞(0)|评价(0)|浏览(280)

Spring Boot应用程序的默认包装是jar,其中包含业务类和嵌入式Web服务器。这主要是为了在其他容器(如WildFly)上部署Spring Boot应用程序。在这种情况下,你只需要在pom.xml文件中声明打包类型 "war "即可。

<project>  <packaging>war</packaging> </project  >

接下来我们要做的是将嵌入式Web服务器(默认为tomcat)的范围设置为 "provided"。为什么?因为我们不想把嵌入式Web服务器作为WAR的一部分,但我们仍然可能在开发生命周期中使用它。这里有一个例子,它使用所有需要的设置来产生一个war,并按照提供的要求设置Tomcat的依赖性。

<?xml version="1.0" encoding="UTF-8"?><project>
      
   <groupId>com.masterspringboot</groupId>
        
   <artifactId>webdemo</artifactId>
        
   <version>0.0.1-SNAPSHOT</version>
          
   <packaging>war</packaging>
          
   <name>springbootdemo</name>
        
   <url>http://maven.apache.org</url>
          
   <parent>
               
      <groupId>org.springframework.boot</groupId>
               
      <artifactId>spring-boot-starter-parent</artifactId>
               
      <version>2.1.0.RELEASE</version>
           
   </parent>
          
   <properties>
               
      <java.version>1.8</java.version>
               
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
           
   </properties>
          
   <dependencies>
               
      <dependency>
                      
         <groupId>org.springframework.boot</groupId>
                      
         <artifactId>spring-boot-starter-web</artifactId>
                  
      </dependency>
               
      <dependency>
                      
         <groupId>org.springframework.boot</groupId>
                      
         <artifactId>spring-boot-starter-tomcat</artifactId>
                      
         <scope>provided</scope>
                  
      </dependency>
               
      <dependency>
                      
         <groupId>org.springframework.boot</groupId>
                      
         <artifactId>spring-boot-starter-hateoas</artifactId>
                  
      </dependency>
               
      <dependency>
                      
         <groupId>org.springframework.boot</groupId>
                      
         <artifactId>spring-boot-starter-test</artifactId>
                  
      </dependency>
           
   </dependencies>
          
   <build>
               
      <plugins>
                      
         <plugin>
                             
            <groupId>org.springframework.boot</groupId>
                             
            <artifactId>spring-boot-maven-plugin</artifactId>
                         
         </plugin>
                  
      </plugins>
           
   </build>
          
   <repositories>
               
      <repository>
                      
         <id>repository.spring.release</id>
                      
         <name>Spring GA Repository</name>
                      
         <url>http://repo.spring.io/release</url>
                  
      </repository>
           
   </repositories>
    
</project>

最后,如果我们要在Tomcat上部署我们的应用程序,我们需要通过实现SpringBootServletInitializer接口来初始化Tomcat需要的Servlet上下文:。

@SpringBootApplication
public class SpringBootTomcatApplication extends SpringBootServletInitializer {}

为了建立我们的WAR应用程序,我们执行。

mvn clean install

之后,WAR文件将在你项目的目标文件夹中被创建。请注意,这个新配置使我们的Spring Boot应用程序成为一个非独立的应用程序(如果你想让它再次以独立模式工作,请从tomcat依赖中删除所提供的范围)。

在WildFly上部署Spring Boot应用程序

如果你想了解如何在WildFly上部署Spring Boot应用程序,请查看这个教程:Deploying a Spring Boot application on WildFly

相关文章

微信公众号

最新文章

更多