zoukankan      html  css  js  c++  java
  • Spring Boot 发布 jar 包转为 war 包秘籍

    Spring Boot是支持发布jar包和war的,但它推荐的是使用jar形式发布。使用jar包比较方便,但如果是频繁修改更新的项目,需要打补丁包,那这么大的jar包上传都是问题。所以,jar包不一定合适适用所有的场景,

    如war包更合适,你可以尝试转为传统的war包,这样打补丁包可能更方便。

    如何配置打war包呢?

    以下配置以Maven为说明讲解,Gradle的查看类似配置。

    1、修改Spring Boot启动类

    启动类继承 SpringBootServletInitializer类,并覆盖 configure方法。

    下面是Spring Boot提供的示例代码。

    @SpringBootApplication
    public class Application extends SpringBootServletInitializer {
        
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {     
            return application.sources(Application.class);
        }
        
        public static void main(String[] args) throws Exception {       
            SpringApplication.run(Application.class,args);  
        }
    }        

    2、修改jar为war包形式

    在pom文件中,添加war包配置。

    <packaging>war</packaging>

    如果不添加,默认为jar包。

    3、去除Spring Boot内置Tomcat

    修改自带tomcat依赖范围为provided,防止与外部tomcat发生冲突。

    <dependencies>
        
    <!-- … -->   
      <dependency>
            
        <groupId>
          org.springframework.boot
        </groupId>
            
        <artifactId>
          spring-boot-starter-tomcat
        </artifactId>
            
        <scope>
          provided
        </scope>
        
      </dependency>   
    <!-- … -->
    </dependencies>

    4、添加war包打包插件

    如果你用的是继承spring-boot-starter-parent的形式使用Spring Boot,那可以跳过,因为它已经帮你配置好了。如果你使用的依赖spring-boot-dependencies形式,你需要添加以下插件。

    <plugin>
        
        <groupId>
            org.apache.maven.plugins
        </groupId>
        
        <artifactId>
            maven-war-plugin
        </artifactId>
        
        <configuration>
            
            <failOnMissingWebXml>
                false
            </failOnMissingWebXml>
        
        </configuration>
    </plugin>                                

    failOnMissingWebXml需要开启为false,不然打包会报没有web.xml错误。

    如何打war包?

    打war包方式和打jar包方式一样,没有区别。

    • 在Maven中使用 mvn cleanpackage命令即可打包。

    • 在Idea中可以这样设置打包:

            

    改在war包后,发现打war包比打jar要上好多。

    jar包转war包有什么影响?

    1、application配置文件中的server.xx等关于容器的配置就无效了,改配置需要在外部tomcat中进行。

    2、Spring Boot的升级是否需要Tomcat跟着升级?需要观察。

    3、打war包比打jar明显要变慢好多。

    转自微信公众号Java技术栈。

  • 相关阅读:
    20175310 《Java程序设计》第11周学习总结
    20175310 《Java程序设计》第10周学习总结
    2018-2019-2 20175310 实验三《敏捷开发与XP实践》实验报告
    20175310 《Java程序设计》第9周学习总结
    类定义(课下选做)
    # 2019-2020-4 《Java 程序设计》结对项目总结
    # 2019-2020-3 《Java 程序设计》第五周学习总结
    # 2019-2020-3 《Java 程序设计》实验一:Java开发环境的熟悉
    # 2019-2020-3 《Java 程序设计》第四周总结
    # 2019-2020-3 《Java 程序设计》第三周总结
  • 原文地址:https://www.cnblogs.com/xiaoQ0725/p/8607189.html
Copyright © 2011-2022 走看看