spring boot怎么打war

fiy 其他 73

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    使用Spring Boot打包成war文件可以通过以下几个步骤实现:

    步骤一:在pom.xml文件中添加war插件依赖

    在pom.xml文件的标签下,添加以下插件依赖:

    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <excludes>
                    <exclude>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-tomcat</artifactId>
                    </exclude>
                </excludes>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.2.3</version>
        </plugin>
    </plugins>
    

    步骤二:修改启动类

    在Spring Boot的启动类上添加如下代码:

    @SpringBootApplication
    public class Application extends SpringBootServletInitializer {
    
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(Application.class);
        }
    
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }
    
    }
    

    步骤三:修改配置文件

    在application.properties(或application.yml)文件中添加如下配置:

    server.servlet.path=/*
    

    步骤四:执行打包命令

    使用Maven命令或IDE工具执行打包命令,生成war文件:

    mvn clean package
    

    最后,会在项目的target文件夹下生成war文件。将该war部署至Tomcat或其他支持war的服务器即可运行Spring Boot应用程序。

    注意:如果需要将Spring Boot应用程序打包成war文件,在运行时需要使用Servlet容器运行,因此需要将内嵌的Tomcat排除在外。同时要注意,在web.xml中配置的Servlet或Filter对于Spring Boot应用来说仍然有效。

    1年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    Spring Boot默认将项目打包为可执行的jar文件,但有时候我们需要将项目打包为war文件部署到Servlet容器中,下面是打包为war文件的步骤:

    1. 修改pom.xml:在 <packaging> 标签中将 <packaging>jar</packaging> 修改为 <packaging>war</packaging>

      <packaging>war</packaging>
      
    2. 配置启动类:在Spring Boot的启动类中继承 SpringBootServletInitializer 类,并重写 configure() 方法。这样,Servlet容器就会知道从该类开始启动Spring Boot应用。

      import org.springframework.boot.SpringApplication;
      import org.springframework.boot.autoconfigure.SpringBootApplication;
      import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
      
      @SpringBootApplication
      public class MyApplication extends SpringBootServletInitializer {
      
         @Override
         protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(MyApplication.class);
         }
      
         public static void main(String[] args) {
            SpringApplication.run(MyApplication.class, args);
         }
      
      }
      
    3. 排除内嵌的Tomcat依赖:由于我们将项目打包为war文件,不再需要内嵌的Tomcat,需要在pom.xml中排除内嵌的Tomcat依赖。

      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
         <exclusions>
            <exclusion>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
         </exclusions>
      </dependency>
      
    4. 配置部署路径:默认情况下,Spring Boot会将war文件放在根路径下,我们可以在application.properties文件中配置部署路径。

      server.servlet.context-path=/myapp
      

      或在application.yml文件中配置:

      server:
        servlet:
          context-path: /myapp
      

      这样,项目的访问路径就会变为 http://localhost:8080/myapp

    5. 打包项目:使用命令行或集成开发工具(如IntelliJ IDEA或Eclipse)打包项目为war文件。

      • 命令行:在项目根目录执行 mvn clean package 命令。

      • IntelliJ IDEA:点击 Maven 视图中的 Lifecycle,双击 package 即可打包项目。

      • Eclipse:在项目上右键,选择 Run As -> Maven Build...,在 Goals 中输入 clean package,点击 Run

    打包完成后,在target目录下会生成war文件,将该war文件拷贝到Servlet容器的webapps目录下即可部署运行。

    1年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    Spring Boot是一个开源的Java框架,用于开发和构建独立的、可扩展的、生产级别的Spring应用程序。Spring Boot默认使用嵌入式的Tomcat容器来运行应用程序,但有时候我们需要将应用程序打包为一个WAR文件,并将其部署到外部的应用服务器上。下面是关于如何将Spring Boot应用程序打包为WAR文件的方法和操作流程。

    1. 修改pom.xml文件:
      在Spring Boot项目的pom.xml文件中,将packaging标签的值修改为war,如下所示:

      <packaging>war</packaging>
      

      这将告诉Maven将项目打包为WAR文件。

    2. 修改启动类:
      在Spring Boot应用程序的启动类上,增加一个继承自SpringBootServletInitializer类的子类,并重写configure方法,如下所示:

      import org.springframework.boot.builder.SpringApplicationBuilder;
      import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
      
      public class ServletInitializer extends SpringBootServletInitializer {
          @Override
          protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
              return application.sources(YourApplication.class);
          }
      }
      

      这将使应用程序能够在外部容器中运行。

    3. 打包:
      在项目的根目录下,打开命令行终端,并执行以下命令来打包应用程序:

      $ mvn clean package
      

      这将使用Maven将项目打包为WAR文件。打包成功后,将会在target目录下生成一个以.war结尾的文件。

    4. 部署到外部应用服务器:
      将生成的WAR文件部署到外部应用服务器上。具体的部署方法,请参考应用服务器的文档说明。

      例如,如果你使用的是Tomcat应用服务器,可以将WAR文件复制到Tomcat的webapps目录下,然后启动Tomcat即可。

    以上是将Spring Boot应用程序打包为WAR文件并部署到外部应用服务器的步骤。这样你就可以在外部容器中运行Spring Boot应用程序了。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部