热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

springboot的war和jar包的使用详解

这篇文章主要介绍了springboot的war和jar包的使用详解,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

本篇和大家分享的是通过maven对springboot中打war包和jar包;war通常来说生成后直接放到tomcat的webapps下面就行,tomcat配置自动解压war,而jar一般通过命令行部署和启动;

首先,来实战怎么生成war包,主要来说可以分为3个步骤:

•程序入口改造
•排除springboot内置tomcat
•spring-boot-maven-plugin插件中配置程序入口

程序入口改造,我们需要把springboot的main入口屏蔽掉,然后继承SpringBootServletInitializer,并重写configure方法,具体代码如:

 @SpringBootApplication
 public class WebApplication extends SpringBootServletInitializer {
 @Override
 protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
  return application.sources(WebApplication.class);
 }
 // public static void main(String[] args){
 //
 // }
 }

排除springboot内置tomcat,默认的情况下springboot是集成有内置tomcat,因为war需要发在我们服务器上的tomcat中,内置的tomcat不需要,可以如下在maven中配置屏蔽:

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

这里通过scope作用域为provided来排除tomcat包,springboot框架中有包含tomcat包,scope默认的作用于是compile,编译,测试,运行;

spring-boot-maven-plugin插件中配置程序入口,上面我们屏蔽了main入口,但是tomcat还是通过启动类作为入口,因此需要配置下启动mainClass:


 org.springframework.boot
 spring-boot-maven-plugin
 
 
  com.platform.WebApplication
 
 

最后,把入口项目的packaging指定成war类型

 war

如上我们准备工作就完成了,下面我们仅仅maven的package打包就行了,生成后如下截图:

war包里面的内容就是META-INF和WEB-INF部分,我们吧war上传到linux上的tomcat的webapps下面,一般配置tomcat都会自动解压war包,我这里之前写了一个api接口,运行成功后正常在浏览器显示:

再来,我们开始打jar包,步骤同样和war差不多,不过是反向的去掉注释的内容:

•还原main入口(springboot模板生成的main,不做任何修改)
•去掉排除tomcat的配置(默认就不没有这个配置)
•使用maven-jar-plugin插件打包,指定程序入口和各种包含|排除项

还原不注释main入口,主要针对刚才打war注释了main入口操作,一般采用springboot模板默认生成就行:

 public static void main(String[] args) throws ParseException, Exception {
 SpringApplication springApplication = new SpringApplication(WebApplication.class);
 springApplication.setBannerMode(Banner.Mode.OFF);
 springApplication.run(args);
 }

去掉排除tomcat的配置(默认就不没有这个配置),同样这一步也是针对打war添加了排除tomcat的配置,直接删除就行,删除:

 
 
 
 
 

使用maven-jar-plugin插件打包,指定程序入口和各种包含|排除项,这里通过jar插件配置一些项,对配置文件和main入口指定:


 
 org.apache.maven.plugins
 maven-jar-plugin
 .
 
  
  
   
   
   
   com.platform.WebApplication
  
  
  
  
  
  
  
  
  
  
 
 

最后,把入口项目的packaging指定成war类型:

 jar

完成以上步骤后,能够看到成功的jar包,如图:

最后在linux上通过java -jar web-0.0.01.SN...jar 启动即可。

总结

以上所述是小编给大家介绍的springboot的war和jar包的使用详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!


推荐阅读
  • 使用Jenkins构建Java项目实践指南
    本指南详细介绍了如何使用Jenkins构建Java项目,包括环境搭建、工具配置以及项目构建的具体步骤。 ... [详细]
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
  • Java EE CDI:解决依赖关系冲突的实例
    在本教程中,我们将探讨如何在Java EE的CDI(上下文和依赖注入)框架中有效解决依赖关系的冲突问题。通过学习如何使用限定符,您将能够为应用程序的不同客户端提供多种接口实现,并确保每个客户端都能正确调用其所需的实现。 ... [详细]
  • ServletContext接口在Java Web开发中扮演着重要角色,它提供了一种方式来获取关于整个Web应用程序的信息。通过ServletContext,开发者可以访问初始化参数、共享数据以及应用资源。 ... [详细]
  • 本文探讨如何使用 PHP 进行字符串处理,特别是如何检测一个字符串是否存在于另一个字符串中,并确定其具体位置。通过实例代码展示,帮助读者掌握这一常用功能。 ... [详细]
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
  • 本文介绍如何在Linux系统中卸载预装的OpenJDK,安装指定版本的JDK 1.8,并配置防火墙以确保系统安全性和软件兼容性。 ... [详细]
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
  • 详解Linux系统启动过程及/etc/rc.d与/etc/rc.d/init.d目录关系
    本文深入探讨了Linux系统启动流程、运行级别及其与/etc/rc.d和/etc/rc.d/init.d目录的关联,旨在帮助读者理解系统启动时各脚本和服务的加载机制。 ... [详细]
  • 本文提供了2023年最新的解决方案,帮助用户了解如何在移动设备上顺利访问和浏览PHP网页,涵盖从基础设置到高级技巧的全方位指导。 ... [详细]
  • 优化使用Apache + Memcached-Session-Manager + Tomcat集群方案
    本文探讨了使用Apache、Memcached-Session-Manager和Tomcat集群构建高性能Web应用过程中遇到的问题及解决方案。通过重新设计物理架构,解决了单虚拟机环境无法真实模拟分布式环境的问题,并详细记录了性能测试结果。 ... [详细]
  • 本文详细介绍了如何在Spring Boot项目中配置Maven的pom.xml文件,包括项目的基本信息、依赖管理及构建插件的设置。 ... [详细]
  • RedHat 系统下配置国内 YUM 源以替代官方收费源的方法
    本文详细介绍如何在 RedHat Linux 中安装并配置 YUM 包管理器,并通过使用国内镜像源来解决因未购买官方服务而导致的更新源限制问题。 ... [详细]
  • window下kafka的安装以及测试
    目录一、安装JDK(需要安装依赖javaJDK)二、安装Kafka三、测试参考在Windows系统上安装消息队列kafka一、安装JDKÿ ... [详细]
author-avatar
mobiledu2502887867
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有