我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SpringBoot应用程序转换成WAR文件详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SpringBoot应用程序转换成WAR文件详解

如何在不牺牲嵌入式应用服务器的直接执行能力的情况下,将 JAR Spring 启动应用更改为打包和部署为 WAR。

WAR与JAR

默认情况下,Spring Boot 应用程序打包为带有嵌入式 Tomcat 的可执行 JAR 文件。您可以直接通过命令运行它们。传统的Java Web应用程序需要一个servlet容器(应用程序服务器)来运行。您需要安装、配置此类服务器,然后将应用程序部署到其中。而且您需要为每个环境准备这样的服务器。使用 Spring Boot,这种方法是相反的,因为应用程序服务器直接位于您的 JAR 中。这有很多优点,但有时您可能需要将 Spring Boot 应用程序作为传统的 WAR 来代替。例如,如果你受公司策略的约束,需要部署到提供的应用服务器。java -jar

在这篇文章中,我们将研究如何在不牺牲直接可执行性的情况下将 Spring Boot 应用程序打包为 WAR。

新应用

幸运的是,当您创建新应用程序时,该过程非常简单。您可以使用所有必需的设置和依赖项生成应用程序,而不是自己创建应用程序。有一个名为Spring Initializr的官方工具。

默认情况下,所有高级选项都是隐藏的。您可以只设置基本内容,例如 Spring 版本、语言或构建工具。当然还有所有的依赖关系。

您需要打开“选项”部分以指定打包。

在高级选项部分中,有“打包”选择。默认情况下,有Jar。这意味着您将能够直接运行 JAR,因为它包含一个嵌入式 Tomcat 应用程序服务器。

您不能将 JAR 部署到其他应用程序服务器(Tomcat、Jetty、JBoss 等)以在那里运行它们。他们只适用于战争。为了能够将应用部署到这些应用,需要将打包更改为WAR。

很棒的是,这样的 WAR 仍然可以自行执行,这很有用。例如,它非常适合本地开发,即使您在生产中使用常规应用服务器也是如此。

完成设置后,您可以单击生成项目,系统将下载包含应用的 zip 文件。

创意整合

使用 Spring Initializr 生成应用程序比手动创建应用程序更方便、更不容易出错。仍然有一些不便,因为您需要转到外部网页,下载zip文件并将其解压缩。

幸运的是,您可以直接从 IDE 使用 Spring Initializr。在IntelliJ IDEA中,您可以访问:

File → New Project → Spring Initializr

在这里,您可以像在网络版本中一样指定所有选项,但麻烦更少。

现有应用程序

当您已经将现有的 Spring 引导应用程序打包为 JAR 时,该过程稍微复杂一些,但仍然很简单。您需要手动进行一些更改。

让我们将应用程序转换为 WAR,将哪个 van 部署到应用程序服务器(如 Tomcat),同时仍保持其可执行性。

嵌入式雄猫依赖

为了确保嵌入式 Tomcat 依赖项不会与目标 Tomcat 上已有的内容冲突,您需要将它们标记为提供。

马文

使用 Maven,只需将此依赖项添加到您的文件中即可。pom.xmldependencies

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

格拉德尔

使用 Gradle,过程类似,只需将依赖项添加到具有提供范围的部分即可。dependencies

providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'

SpringBootServletInitializer

现在,您需要确保应用程序以 WAR 的形式正常运行。这就像将以下类添加到应用一样简单。

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
public class ServletInitializer extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(BootWarApplication.class);
    }
}

BootWarApplication.class是应用中批注的类。@SpringBootApplication

如果你愿意,而不是一个单独的类,你可以让你的类扩展类并包含与上面相同的方法。@SpringBootApplicationSpringBootServletInitializerconfigure

更改包装

现在,最后一步是确保您的应用正确打包为 WAR 而不是 JAR。

马文

只需从以下位置更新文件中的打包部分pom.xml

<packaging>jar</packaging>

到WAR包装

<packaging>war</packaging>

格拉德尔

在 Gradle 中,将插件添加到您的插件部分。war

plugins {
    id 'org.springframework.boot' version '2.1.6.RELEASE'
    id 'java'
    id 'war'
}

建立WAR

构建过程保持不变,这里没有变化,只需运行,它将生成您的 WAR。mvn packagegradle build

现在,您可以部署到您选择的应用程序服务器。

运行WAR

这种方法很酷的地方在于,您仍然可以将 WAR 作为带有嵌入式 Tomcat 的可执行文件运行。这样,您可以在不牺牲直接可执行性的情况下进行 WAR 部署。

只需像往常一样运行存档即可。将最后一个参数替换为 WAR 的真实名称。

java -jar demo-1.0.0-SNAPSHOT.war

到此这篇关于SpringBoot应用程序转换成WAR文件详解的文章就介绍到这了,更多相关SpringBoot转换WAR内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SpringBoot应用程序转换成WAR文件详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SpringBoot应用程序转换成WAR文件详解

其实一般使用SpringBoot使用打成jar包比较省事的,但也有很多童鞋是习惯使用WAR包的,下面这篇文章主要给大家介绍了关于SpringBoot转换WAR的相关资料,需要的朋友可以参考下
2022-11-13

从Java应用程序动态生成PDF文件(转)

从Java应用程序动态生成PDF文件(转)[@more@]如果应用程序需要动态生成 PDF 文档,则需要 iText 库。开放源码的 iText 库使 PDF 文档的创建能够在瞬间完成。本文介绍了 iText 并提供了使用它从 Java ?
2023-06-03

使用PyInstaller将Python程序文件转换为可执行程序文件

Windows下采用PyInstall将py文件转换成exe可执行文件 好不容易写完的py文件,想做成exe文件,最开始选择用py2exe,结果生成的exe遇到两个问题, 1. py程序里print 的信息,cmd中执行tool后并没有显示
2022-06-04

一键将Word文档转成Vue组件mammoth的应用详解

这篇文章主要为大家介绍了一键将Word文档转成Vue组件mammoth的应用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-02-01

win7文件夹变成了应用程序如何解决

本篇内容介绍了“win7文件夹变成了应用程序如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!win7文件夹变成了应用程序解决方法1、首
2023-07-01

图文详解如何将java编写的程序转为exe文件

我们写的程序,要让小伙伴打开即用,可以将java程序生成可执行文件,下面这篇文章主要给大家介绍了关于一步步教你如何将java编写的程序转为exe文件的相关资料,需要的朋友可以参考下
2023-01-18

win10文件夹变成了应用程序怎么恢复

如果你的Windows 10文件夹变成了应用程序,可能是因为系统设置或者某些软件的错误导致的。要恢复文件夹的正常状态,你可以尝试以下方法:1. 在文件资源管理器中,右键单击文件夹并选择“属性”。在“属性”对话框中,点击“自定义”选项卡。确保
2023-08-30

微信小程序全局文件的使用详解

在小程序开发时,每个页面都对应一个目录,每个目录又分别有wxml、wxss、js和json四个文件。详细说明可查看后续文章介绍,本文主要详解全局文件
2022-11-13

Django应用程序中如何发送电子邮件详解

前言 在Django应用程序中发送电子邮件最常见的用例是密码重置、帐户激活和发送与您的应用程序相关的一般通知。下面来看看详细的介绍吧。 配置Django发送电子邮件 要配置您的Django应用程序,添加下面的参数到你settings.py:
2022-06-04

Win10系统taskmgr.exe-文件应用程序错误如何解决

Win10系统taskmgr.exe-文件应用程序错误如何解决?我们使用win10的时候,经常会遇到一些问题,近期就有小伙伴在使用win10系统的时候,发生taskmgr.exe-文件应用程序错误,那么遇到这种情况应该如何解决呢。小编下面整
2023-07-10

win10系统taskmgr.exe文件应用程序错误如何解决

本文小编为大家详细介绍“win10系统taskmgr.exe文件应用程序错误如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“win10系统taskmgr.exe文件应用程序错误如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢
2023-07-01

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录