IntelliJ IDEA 项目打WAR包(步奏),部署到Tomcat(解决不能加载项目静态资源文件的方法)

时间:2024-04-02 21:25:38

首先是打war包(仅针对IntelliJ IDEA开发工具开发的项目)

1.修改pom.xml文件(里面没这些需要添加)

(1)

<!--项目包名-->
    <groupId>com.sanfo</groupId>
<!--    打包包名-->
    <artifactId>springboot2-mybatis-demo</artifactId>
<!--    打包版本号-->
    <version>0.0.1-SNAPSHOT</version>
<!--    打包类型-->
    <packaging>war</packaging>

(2)

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <!-- 去除内嵌tomcat,本地启动要注释掉,打包要放开-->
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
    <!--            至此-->
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<!-- 移除之后会报错,加入下面的依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
    <version>2.1.10.RELEASE</version>
</dependency>
至此pom.xml文件修改完成

2.启动类里面各继承和实现一个类

extends SpringBootServletInitializer implements WebMvcConfigurer

然后重新两个方法

(1)不重写这个方法tomcat会报错或者项目404

//打War包必须继承SpringBootServletInitializer并重写否则无法启动程序
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return super.configure(builder);
    }
(2)加载静态资源方法没有这个方法,tomcat无法加载静态资源
  //这里配置静态资源文件的路径导包都是默认的直接导入就可以
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX + "/static/");
        WebMvcConfigurer.super.addResourceHandlers(registry);
    }

至此Application启动类文件修改完成

3.接下来是时候展现你真正的技术了

(1)点击这个小图标

IntelliJ IDEA 项目打WAR包(步奏),部署到Tomcat(解决不能加载项目静态资源文件的方法)

(2)选择Atifacts(谷歌翻译叫文物,百度翻译叫病人,奈何小学毕业不会翻译暂且叫他文物)

IntelliJ IDEA 项目打WAR包(步奏),部署到Tomcat(解决不能加载项目静态资源文件的方法)

(3)点击+添加一个文物(模糊路径不知道为啥,别人打马赛克咱不能比别人差哈哈)

IntelliJ IDEA 项目打WAR包(步奏),部署到Tomcat(解决不能加载项目静态资源文件的方法)

(4)修改名称,勾选(Include in project build)选择输出路径(我一般直接输出到本地安装tomcat/webapps/,比较懒不用复制过去了),最后还是打马赛克。

IntelliJ IDEA 项目打WAR包(步奏),部署到Tomcat(解决不能加载项目静态资源文件的方法)

(5)希望就在眼前了apply(提交)OK(确认)(别忘了马赛克)

IntelliJ IDEA 项目打WAR包(步奏),部署到Tomcat(解决不能加载项目静态资源文件的方法)

(6)创建一个文物

IntelliJ IDEA 项目打WAR包(步奏),部署到Tomcat(解决不能加载项目静态资源文件的方法)

(7)大结局(选择你创建文件名称)build创建war,点击之后开发工具下面会有进度条,有问题会报错。

IntelliJ IDEA 项目打WAR包(步奏),部署到Tomcat(解决不能加载项目静态资源文件的方法)

需要注意的是war包名最好是字母不要包含特殊字符否则不能正常访问网页http://localhost:8080/demo/

IntelliJ IDEA 项目打WAR包(步奏),部署到Tomcat(解决不能加载项目静态资源文件的方法)

总结;网上查了很多文章都是很片面,要么是解决加载静态资源的问题,要么是解决配置在tomcat下启动问题,我花费今天一天时间把这两个问题同时解决,本人菜鸟一枚如有不对之处还请各位大神指正抱拳了。