SpringBoot项目打成war和jar的区别说明

yizhihongxing

Spring Boot 是一个轻量化的框架,可以用于快速构建基于 Spring 的 Web 应用程序。它们可以以两种不同的形式进行部署:WAR 和 JAR。这里将详细讲解 WAR 和 JAR 的区别,以及其在 Spring Boot 项目中运用的使用方法。

WAR 和 JAR 的区别

WAR 和 JAR 是两个在 Java 环境中经常使用的文件类型。它们有以下区别:

  1. JAR (Java Archive):是一种通用的 Java 应用程序存档文件格式。常用于分发和部署 Java 应用程序。

  2. WAR(Web Application Archive):是一种特定类型的 JAR 文件,用于打包和分发 Web 应用程序。

结论: 简单来说,JAR 是通用的 Java 应用程序文件格式,而 WAR 是专门用于在 Web 应用程序中使用的一种文件格式。

制作 Spring Boot 项目的 WAR 和 JAR 包

下面是制作 Spring Boot 项目的 WAR 包和 JAR 包的具体步骤:

制作 WAR 包

  1. 修改 pom.xml 文件,增加以下依赖:
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

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

2.在 Spring Boot 主类的头部添加以下注解,实现 WAR 包的部署:

    @SpringBootApplication
    public class SpringBootApp extends SpringBootServletInitializer {

        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(SpringBootApp.class);
        }

        public static void main(String[] args) {
            SpringApplication.run(SpringBootApp.class, args);
        }
    }
  1. 执行命令:mvn clean package 打包目标文件。

  2. 生成的 WAR 文件位于 /target 目录下。

制作 JAR 包

  1. 修改 pom.xml 文件,将以下依赖项注释掉:
<!-- <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency> -->
  1. 清除所有 Tomcat 相关依赖项。

  2. 执行命令:mvn clean package 打包目标文件。

  3. 生成的 JAR 文件位于 /target 目录下。

示例

下面给出两个示例,一个是将 Spring Boot 项目打成 WAR 包的实现方法,一个是将 Spring Boot 项目打成 JAR 包的实现方法。

示例 1: 制作 WAR 包

  1. 打开 Spring Boot Maven 实例项目。

  2. 修改 pom.xml 中的依赖项。

  3. 使用以下命令来构建并打包 WAR 文件:

$ mvn clean package
  1. 运行以下命令将 WAR 文件部署到 Tomcat 服务器上:
$ cp target/hello-world-0.0.1-SNAPSHOT.war /path/to/www/webapps/hello-world.war
  1. 启动 Tomcat 服务器。

  2. 在浏览器访问 http://localhost:8080/hello-world 查看页面。

示例 2: 制作 JAR 包

  1. 打开 Spring Boot Maven 实例项目。

  2. 修改 pom.xml,将以下内容注释掉:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>
  1. 使用以下命令构建并打包 JAR 文件:
$ mvn clean package
  1. 运行以下命令启动 JAR 文件:
$ java -jar target/hello-world-0.0.1-SNAPSHOT.jar
  1. 在浏览器访问 http://localhost:8080/ 端口以查看 Spring Boot 应用程序运行情况。

总之,在选择部署 Spring Boot 项目时,需要根据自己的需要选择 WAR 包或 JAR 包。如果需要将 Spring Boot 项目部署到 Web 服务器,那么应该选择 WAR 包。如果只是需要部署一个简单的调用控制台或命令行的程序,那么应该选择 JAR 包。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot项目打成war和jar的区别说明 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Java SpringBoot容器注入对象详解

    Java SpringBoot容器注入对象详解 在Java SpringBoot应用程序中,我们可以通过将对象注入到容器中来实现对象之间的依赖关系,这样就能够实现更好的代码复用和测试。 什么是容器注入 容器注入是一种通过容器来管理Java对象之间依赖关系的技术,也称为依赖注入(DI)。通过依赖注入,我们可以将一个对象或多个对象自动注入到另一个对象中,从而避免…

    Java 2023年5月19日
    00
  • Java与Http协议的详细介绍

    一、Java与HTTP协议的介绍 HTTP协议是一种应用层协议,它是在Web的基础上发展起来的。Java作为一种编程语言,可以通过使用Java的网络库来实现HTTP协议的通信。 Java提供了许多网络相关的库,其中包括: URL和URLConnection:用于向服务器发送HTTP请求并接收响应。 HttpClient库:是开源的第三方库,提供了更多的功能和…

    Java 2023年6月15日
    00
  • Java同学找工作最懵圈的问题:到底啥是分布式系统开发经验?(推荐)

    Java同学找工作最懵圈的问题:到底啥是分布式系统开发经验? 什么是分布式系统? 在计算机领域,分布式系统(Distributed System)是由多个相互连接、通过共享资源、进行协调工作的计算机组成的系统。它们通过网络互相通信和协调,以执行各种任务。分布式系统有许多优点,比如高可用性、性能扩展、容错性和灵活性等。 什么是分布式系统开发? 分布式系统开发是…

    Java 2023年5月30日
    00
  • java外部类与内部类简介

    Java中的类可以定义在另一个类的内部,这些类被称为内部类。内部类可以访问外部类的私有成员,并且可以被外部类以及其他类所使用。在本文中,我们将会介绍Java中的外部类和内部类。 外部类 首先,我们来看看外部类的概念。外部类是指独立存在的类,它不是定义在另一个类的内部,而是作为一个独立的实体存在。通常来说,Java程序都会包含一个或多个外部类。 以下是一个外部…

    Java 2023年5月26日
    00
  • Java多线程工具CompletableFuture的使用教程

    Java多线程工具CompletableFuture的使用教程 介绍 在 Java 1.8 版本中,加入了 CompletableFuture 类,它是一种新的 Future 类型,用于异步计算任务的完成(无需调用线程池提供的线程)。CompletableFuture 可以将异步操作串行化,也可以将多个异步操作组合和并为一个结果。本文将全面介绍 Comple…

    Java 2023年5月18日
    00
  • javascript分页代码实例分享(js分页)

    下面是关于“JavaScript分页代码实例分享(JS分页)”的详细攻略: 1. 分页功能原理 分页功能是指将一定数量的数据进行分页,在Web应用程序中将其展示给用户。分页的原理是将每页的数据放在一个数据容器中,根据容器高度和每个数据元素的高度计算出每页的元素数量,再通过前后翻页按钮实现翻页。 2. 分页代码实现 2.1 HTML结构 首先,在HTML中需要…

    Java 2023年6月16日
    00
  • 用python将pdf转化为有声读物

    将PDF转化为有声读物的过程需要使用 Python 中的两个主要库:1. PyPDF2: 用于解析 PDF 文件。2. pyttsx3: 文字转语音库 – 与文本转语音有关。 下面是一个步骤示例,如何在Python中使用PyPDF2和pyttsx3将PDF文档转换为有声读物: 步骤 1 – 安装 PyPDF2 和 pyttsx3 库 在命令提示符中输入以下命…

    Java 2023年6月15日
    00
  • 详解Elastic Search搜索引擎在SpringBoot中的实践

    详解ElasticSearch搜索引擎在SpringBoot中的实践 ElasticSearch 是一个基于 Lucene 的搜索引擎,它提供了分布式、多租户、全文搜索等功能。在 Spring Boot 中,我们可以使用 Spring Data Elasticsearch 来集成 ElasticSearch,实现搜索功能。本文将详细介绍 ElasticSea…

    Java 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部