• 新版网站前后台即将上线,2019年将致力于提高文章质量,加大原创力度,打造一个更加舒适的阅读体验!
  • 极客文库小编@勤劳的小蚂蚁,为您推荐每日资讯,欢迎关注!
  • 新版网站前后台即将上线,2019年将致力于提高文章质量,加大原创力度,打造一个更加舒适的阅读体验!
  • 如果有任何体验不佳的地方,欢迎向客服反馈!

Spring Boot 发布 jar 包转为 war 包秘籍。

点击上方蓝色文字关注↑↑↑↑↑
Spring Boot 是支持发布 jar 包和 war 的,但它推荐的是使用 jar 形式发布。使用 jar 包比较方便,但如果是频繁修改更新的项目,需要打补丁包,那这么大的 jar 包上传都是问题。所以,jar 包不一定合适适用所有的场景,如 war 包更合适,你可以尝试转为传统的 war 包,这样打补丁包可能更方便。

如何配置打 war 包呢?

以下配置以 Maven 为说明讲解,Gradle 的查看类似配置。
1、修改 Spring Boot 启动类
启动类继承 SpringBootServletInitializer类,并覆盖 configure方法。
下面是 Spring Boot 提供的示例代码。
  1. @SpringBootApplication
  2. publicclassApplicationextendsSpringBootServletInitializer{
  3.    @Override
  4.    protectedSpringApplicationBuilder configure(SpringApplicationBuilder application){
  5.        return application.sources(Application.class);
  6.    }
  7.    publicstaticvoid main(String[] args)throwsException{
  8.        SpringApplication.run(Application.class, args);
  9.    }
  10. }
2、修改 jar 为 war 包形式
在 pom 文件中,添加 war 包配置。
  1. <packaging>war</packaging>
如果不添加,默认为 jar 包。
3、去除 Spring Boot 内置 Tomcat
修改自带 tomcat 依赖范围为 provided,防止与外部 tomcat 发生冲突。
  1. <dependencies>
  2.    <!-- … -->
  3.    <dependency>
  4.        <groupId>org.springframework.boot</groupId>
  5.        <artifactId>spring-boot-starter-tomcat</artifactId>
  6.        <scope>provided</scope>
  7.    </dependency>
  8.    <!-- … -->
  9. </dependencies>
4、添加 war 包打包插件
如果你用的是继承 spring-boot-starter-parent 的形式使用 Spring Boot,那可以跳过,因为它已经帮你配置好了。如果你使用的依赖 spring-boot-dependencies 形式,你需要添加以下插件。
  1. <plugin>
  2.    <groupId>org.apache.maven.plugins</groupId>
  3.    <artifactId>maven-war-plugin</artifactId>
  4.    <configuration>
  5.        <failOnMissingWebXml>false</failOnMissingWebXml>
  6.    </configuration>
  7. </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 明显要变慢好多。。
暂时还没遇到其他问题,大家对此有什么看法都可以在下方留言。

丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:Spring Boot 发布 jar 包转为 war 包秘籍。
喜欢 (0)
[247507792@qq.com]
分享 (0)
勤劳的小蚂蚁
关于作者:
温馨提示:本文来源于网络,转载文章皆标明了出处,如果您发现侵权文章,请及时向站长反馈删除。

欢迎 注册账号 登录 发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00