• springboot项目部署(war包)


    将springboot项目打包成war,并且部署到tomcat。比较麻烦,自己踩的坑也比较多。算了一下,找bug的时间,有两天熬到凌晨2点。

    修改pom.xml使得打包成war

    <groupId>com.yanzhen</groupId>
    <artifactId>dormitory</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <description>Demo project for Spring Boot</description>
    <packaging>war</packaging> <!--更改这里-->
    

    修改pom.xml排除内置的Tomcat(不然报错404)

    <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>
    

    添加tomcat启动器

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
    </dependency>
    

    在build配置项目的打包名

    <build>
        <finalName>dormitory</finalName>
    </build>
    

    打包之后的项目名就是dormitory

    image-20210127110624791

    修改启动类

    继承自SpringBootServletInitializer并重写SpringApplicationBuilder方法

    @SpringBootApplication
    @MapperScan({"com.dj.mapper"})//配置到mapper
    public class DormitoryApplication extends SpringBootServletInitializer {
    
        public static void main(String[] args) {
            SpringApplication.run(DormitoryApplication.class, args);
        }
    
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
            return builder.sources(DormitoryApplication.class);
        }
    }
    

    maven打包

    先执行maven clean ,再执行maven package,那么就会在target目录下生成了dormitory.war

    image-20210127110908411

    部署到tomcat

    dormitory.war放入tomcat中的webapps

    image-20210127111132915

    启动tomcat

    在windows中运行,linux类似

    cd bin
    startup.bat
    

    启动成功之后,会发现生成了一个dormitory的文件夹,项目也运行起来了。

    image-20210127111403770

    测试

    image-20210127111547799

    测试注意点(一定要看)

    由于不使用Spring Boot 自带的Tomcat,所以在application中配置服务器server是无效的。

    如果需要修改端口port,修改tomcat的端口,即这边设置的端口也不会生效,会使用tomcat的默认端口。]

    tomcat修改默认端口:https://www.cnblogs.com/wzstudy/p/10690656.html

    如果部署到云服务器需要开放两边的端口,宝塔和服务器的

    如果需要context-path,需要在前面设置build的打包名改成context-path的值(打包名就不用/)

    image-20210127111737752

    <build>
        <finalName>dormitory</finalName>
    <build>
    

    如果你没有设置context-path,你想要访问的效果是http://localhost:8080/login,那么你就需要将打包名改成ROOT

    <build>
        <finalName>ROOT</finalName>
    <build>
    

    image-20210127112511557

    这样项目就会直接编译到原本ROOT文件中

    参考链接

    部署springboot项目到云服务器的两种方式(jar+war)

    SpringBoot项目部署(war包,jar包)

    SpringBoot部署 –war方式

    修改tomcat默认端口

  • 相关阅读:
    Java四种引用类型+ReferenceQueue+WeakHashMap
    浅谈怎样写好一篇(技术)博客?
    MySQL-5.7.14-WinX64安装配置详解
    网络编程梳理:Android网络基础知识复习
    Git时间:常用Git命令收集整理(持续更新)
    一些常见技术问题收集(二)持续更新
    开源库AndroidSwipeLayout分析(一),炫酷ItemView滑动呼出效果
    开源库AndroidSwipeLayout分析(二),SwipeLayout源码探究
    ES 基础操作
    pymongo
  • 原文地址:https://www.cnblogs.com/10134dz/p/14334076.html
Copyright © 2020-2023  润新知