008-SpringBoot发布WAR启动报错:Error assembling WAR: webxml attribute is required

一、Spring Boot发布war包流程:

1、修改web model的pom.xml

<packaging>warpackaging>

SpringBoot默认发布的都是jar,因此要修改默认的打包方式jar为war

2、修改web model的依赖(dependency)

<dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
            
        dependency>

        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-tomcatartifactId>
            <scope>providedscope>
        dependency>

        

注意:

这里添加了起步依赖spring-boot-starter-web,因此,建议把起步依赖Spring-boot-starter-tomcat的scope设置为provided,原因很简单:我们的项目中可能会使用Filter等Servlet的api;

因此,不建议spring-boot-starter-web中移除嵌入式Spring-boot-starter-tomcat的起步依赖,因为这样就必须再单独添加servet-api的依赖

3、maven编译

启动时报错:Error assembling WAR: webxml attribute is required

很明显:webapp/WEB-INF下找不到web.xml

使用Spring开发,默认把所有的静态资源+界面view都放在resources下了,如下图:

  008-SpringBoot发布WAR启动报错:Error assembling WAR: webxml attribute is required_第1张图片

 

  因此,webapp都不复存在了,更何况/WEB-INF和/WEB-INF/web.xml

  解决方案:

            
            <plugin>
                <artifactId>maven-war-pluginartifactId>
                <version>2.6version>
                <configuration>
                    
                    <failOnMissingWebXml>falsefailOnMissingWebXml>
                configuration>
            plugin>

1、使用maven-war-plugin3.0,解决了web.xml不存在无法构建war的问题

2、继续使用maven-war-plugin2.6,添加设置failOnMissingWebXml=false

 

转载于:https://www.cnblogs.com/bjlhx/p/11491297.html

你可能感兴趣的:(008-SpringBoot发布WAR启动报错:Error assembling WAR: webxml attribute is required)