多模块Spring-boot项目如何打包成指定名字的war包?

如果不知道如何创建多模块项目,可以参考???还没写呢,写了再加上连接

照着以下步骤一步一步做就可以:

  1. 父亲pom需要设置packaging为pom
 pom

2 . 核心代码模块,也就是启动类(application)所在的模块,需要引入插件

       
           
               org.springframework.boot
               spring-boot-maven-plugin
           
       
   

3. 设置核心代码模块的打包方式为war,

war

其他依赖模块如有需要,可以设置为jar的打包方式。实测不设置也会默认打包成jar包

jar

4. 设置自定义打包名字(这个是打包出来指定名字的关键),如果你知道其他操作,看到这里就可以快跑了。


spring-demo

5. 然后就是我们的依赖,Application所在的模块你不可能不引入starter-web吧,然后就是单独引入tomcat依赖,

引入starter-web依赖时,可以排除其内置的tomcat服务器,也就是springboot自带的tomcat容器,但是实测不排除也没影响,看个人需要


      org.springframework.boot
      spring-boot-starter-web

      
          
              org.springframework.boot
              spring-boot-starter-tomcat
          
      


 
     org.springframework.boot
     spring-boot-starter-tomcat
     provided
 
6. 依赖解决了,我们需要改写启动类:

主要就是继承SpringBootServletInitializer这个类,重写他的configure方法:

@SpringBootApplication
public class Application extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    /**
     *  重写configure方法。
     */
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(Application.class);
    }

}
7. 在web的目录下添加webapp/WEN-INF/web.xml(没有webapp文件夹就创建一个)

不加的话打包可能会报如下的错:

意思就是没有webxml

所以我们需要在main下面加上webapp/WEN-INF/web.xml

这个位置:

多模块Spring-boot项目如何打包成指定名字的war包?_第1张图片

web.xml的内容如下:




spring-demo

8. 那么现在我们就可以通过idea或者是指令来打包项目了。

root或者web下的都可以,如果还是不行可以尝试用install

多模块Spring-boot项目如何打包成指定名字的war包?_第2张图片

没有指令的介绍了,因为小白我不会(╥﹏╥)

你可能感兴趣的:(maven,spring,boot,idea,学习,其他)