spring boot maven项目,导出war,部署到tomcat

1.启动类需要继承SpringBootServletInitializer,重写方法configure

@ServletComponentScan
@SpringBootApplication
public class StartApplication extends SpringBootServletInitializer{
   
    public static void main( String[] args )
    {
         SpringApplication.run(StartApplication.class, args);
    }
    
    //为了打包springboot项目
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(this.getClass());
    }
}

2.修改pom.xml的包配置为war

<groupId>com</groupId>
  <artifactId>stock</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>

3.右击项目-》Run As -》Maven clean,开始清理maven之前产生的相应文件,出现BUILD SUCCESS标识完成

4.右击项目-》Run As-》Maven build-》弹出框的 Goals输入 -X package,勾选Update Snapshots与Skip Tests,点击Run开始导war包

5.打包完成后,右击选择刷新项目,可以在target目录下看到导出的war包

6.把导出的war包复制到tomcat的webapp目录下

7.配置Tomcat的启动端口号,子conf目录下打开server.xml文件,修改端口号

8.从Tomcat的bin目录下双击startup.bat启动项目,第一个启动需要解析war包,速度回慢一点

9.在浏览器中输入地址进行访问,127.0.0.1:端口/导出包名/链接。注意:在eclipse中访问不用加导出包名map访问,添加在Tomcat后需要添加导出包名,否则访问出现404结果。

10.可以在pom.xml中修改配置生成的war包名称,若不配置则导出的包名为默认的名称

11.发布在tomcat上的项目,访问需要带war名称,这样容易使一些嵌套链接访问出问题,所以需要进行配置

(1)在项目的pom.xml中配置忽略spring boot内嵌tomcat,重新打war包,重新部署到tomcat中

   <!-- 项目启动需要的jar包 -->
     <dependency>   
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <!--忽略内嵌tomcat,打包部署到tomcat。注*本地运行的时候要把这一段忽略引入个注释掉,要不然项目启动不了-->
      <exclusions>
          <exclusion>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-tomcat</artifactId>
          </exclusion>
       </exclusions>
    </dependency>  
    截图:

(2)修改tomcat的conf目录下的server.xml配置信息,找到Host节点,添加 <Context docBase="/map" path="/" reloadable="true" privileged="true"/>。docBase为war包的名称map,path配置为"/",即可以不用再加前缀map访问系统

猜你喜欢

转载自blog.csdn.net/ZHANGLIZENG/article/details/87932133