springboot项目打包发布部署的过程及jar和war的区别

 更新时间:2022年11月29日 09:16:53   作者:摇滚侠  
Spring Boot使用了内嵌容器,因此它的部署方式也变得非常简单灵活,可以将Spring Boot项目打包成JAR包来独立运行,Spring Boot项目既可以生成WAR包发布,也可以生成JAR包发布,那么它们有什么区别呢

简介:

1.Spring Boot使用了内嵌容器,因此它的部署方式也变得非常简单灵活,可以将Spring Boot项目打包成JAR包来独立运行,也可以打包成WAR包部署到Tomcat容器中运行,如果涉及大规模的部署,Jenkins成为最佳选择之一。

生成jar包

Maven默认会将项目打成JAR包,也可以在pom.xml文件中指定打包方式。配置示例如下:

生成war包

Spring Boot项目既可以生成WAR包发布,也可以生成JAR包发布。那么它们有什么区别呢?
JAR包:通过内置Tomcat运行,不需要额外安装Tomcat。如果需修改内置Tomcat的配置,只需要在Spring Boot的配置文件中配置即可。内置Tomcat没有自己的日志输出,全靠JAR包应用输出日志,但是部署简单方便,适合快速部署。
WAR包:传统的应用交付方式,需要安装Tomcat,然后将WAR包放到webapps目录下运行,这样可以灵活选择Tomcat版本,也可以直接修改Tomcat的配置,同时有自己的Tomcat日志输出,可以灵活配置安全策略。WAR包相对JAR包来说没那么快速方便。

更改配置

排除tomcat

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

在上面的示例中,将Tomcat组件的scope属性设置为provided,这样在打包产生的WAR中就不会包含Tomcat相关的JAR。

注册启动类

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

打包命令

在项目根目录下,在控制台执行如下命令:
mvn clean package -Dmaven.test.skip=true
1)mvn clean package其实是两条命令,mvn clean用于清除项目target目录下的文件,mvn package是打包命令。两个命令可以一起执行。
2)-Dmaven.test.skip=true:排除测试代码后进行打包。
将打包好的WAR包复制到Tomcat服务器中的webapps目录下启动即可。

启动运行

到此这篇关于springboot项目的打包发布部署,jar和war的区别的文章就介绍到这了,更多相关springboot部署jar和war的区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot使用hutool操作FTP的详细过程

    SpringBoot使用hutool操作FTP的详细过程

    在使用SpringBoot结合hutool操作FTP时,遇到防火墙导致上传文件大小为0kb的问题,通过设置FTP为被动模式解决,本文详细解析了FTP的主动模式和被动模式的工作原理、安全性及适用场景,帮助理解FTP的连接方式和解决网络限制问题
    2024-09-09
  • Java操作XML转JSON数据格式详细代码实例

    Java操作XML转JSON数据格式详细代码实例

    在Java中我们可以使用一些现成的库来实现XML到JSON的转换,下面这篇文章主要给大家介绍了关于Java操作XML转JSON数据格式的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-04-04
  • Echarts+SpringMvc显示后台实时数据

    Echarts+SpringMvc显示后台实时数据

    这篇文章主要为大家详细介绍了Echarts+SpringMvc显示后台实时数据,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • Spring整合MyBatis图示过程解析

    Spring整合MyBatis图示过程解析

    这篇文章主要介绍了Spring整合MyBatis图示过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • IDEA使用SequenceDiagram插件绘制时序图的方法

    IDEA使用SequenceDiagram插件绘制时序图的方法

    这篇文章主要介绍了IDEA使用SequenceDiagram插件绘制时序图的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • POI读取excel简介_动力节点Java学院整理

    POI读取excel简介_动力节点Java学院整理

    这篇文章主要介绍了POI读取excel简介,详细的介绍了什么是Apache POI和组件,有兴趣的可以了解了解一下
    2017-08-08
  • idea运行vue项目设置自定义浏览器方式

    idea运行vue项目设置自定义浏览器方式

    这篇文章主要介绍了idea运行vue项目设置自定义浏览器方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • Java Selenide 简介与用法

    Java Selenide 简介与用法

    Selenium 是目前用的最广泛的Web UI 自动化测试框架,本文给大家介绍下Java Selenide使用,感兴趣的朋友一起看看吧
    2022-01-01
  • Java pdu短信解码全面解析

    Java pdu短信解码全面解析

    本文是根据python的方法改写的pdu短信解码,非常不错,代码简单易懂具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-10-10
  • IDEA报错java.lang.OutOfMemoryError:Java heap space的解决办法

    IDEA报错java.lang.OutOfMemoryError:Java heap space的解决办法

    这篇文章主要给大家介绍了关于IDEA报错java.lang.OutOfMemoryError:Java heap space的解决办法,出现这个问题的主要原因是项目运行时的堆内存不足引起的报错,需要的朋友可以参考下
    2024-02-02

最新评论