IDEA打包JavaWeb的War包并部署到Tomcat

前言

JavaWeb 工程,都是打成 War 包后进行发布的,打成 War 包的好处是不会缺少目录,并且只管理好一个发布文件就好。将 War 包放在 Tomcat 容器的 webapps 目录下,启动 Tomcat 服务后,即可运行该项目,Tomcat 服务器能够自动识别该 War 包并自动解压出一个同名的文件夹。

本文来记录学习下如何在 IDEA 中创建一个简单的 JavaWeb 示例项目,并打包生成 War 包,部署到 Tomcat 服务器中,从而能在浏览器访问该 Web 服务。

基础认识

如果做 Java 开发,必定会经常接触 jar 包和 war 包,有必要对它们做一个深入的了解,故做下总结梳理。

JAR包

JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。JavaSE 程序可以打包成 Jar 包。JAR 文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的 JAR。

简单来说,Jar 包就是别人已经写好的一些类,然后对这些类进行打包。可以将这些 Jar 包引入到你的项目中,可以直接使用这些 Jar 包中的类和属性,这些 Jar 包一般放在 lib 目录下。

War包

War 包是一个可以直接运行的 Web 模块,通常用于网站,打成包部署到容器中。以 Tomcat 来说,将 war 包放置在其\webapps\目录下,然后启动 Tomcat,这个包就会自动解压,就相当于发布了。

War 包是 Sun 提出的一种 Web 应用程序格式,与 Jar 包类似,它是很多文件的压缩包。简单来说,War 包是 JavaWeb 程序打的包,War 包里面包括写的代码编译成的 class 文件、依赖的包、配置文件、所有的网站页面(包括 html,jsp)等等,一个 War 包可以理解为是一个 Web 项目,里面是项目的所有东西。

Jar 包和 War 包的区别

WAR 文件代表了一个 Web 应用程序,而 JAR 是类的归档文件。如果一个 Web 应用程序的目录和文件非常多,那么将这个 Web 应用程序部署到另一台机器上,就不是很方便了,这时可以将 Web 应用程序打包成 Web 归档(WAR)文件,这个过程和把 Java 类文件打包成 JAR 文件的过程类似。利用 WAR 文件,可以把 Servlet 类文件和相关的资源集中在一起进行发布。在这个过程中,Web 应用程序就不是按照目录层次结构来进行部署了,而是把 WAR 文件作为部署单元来使用。

要注意的是,虽然 WAR 文件和 JAR 文件的文件格式是一样的,并且都是使用 jar 命令来创建,但就其应用来说,WAR 文件和 JAR 文件是有根本区别的。JAR 文件的目的是把类和相关的资源封装到压缩的归档文件中,而对于 WAR 文件来说,一个 WAR 文件代表了一个 Web 应用程序,它可以包含 Servlet、HTML 页面、Java类、图像文件,以及组成 Web 应用程序的其他资源,而不仅仅是类的归档文件。

那么什么时候应该使用 WAR 文件呢?在开发阶段不适合使用 WAR 文件,因为在开发阶段,经常需要添加或删除 Web 应用程序的内容,更新 Servlet类文件,而每一次改动后,重新建立 WAR 文件将是一件浪费时间的事情。在产品发布阶段,使用 WAR 文件是比较合适的,因为在这个时候,几乎不需要再做什么改动了。

JavaWeb

下面借助 IDEA 来实际创建一个简单的 JavaWeb 项目,并打包生成 War 包、部署到 Tomcat 容器中。下面的演示项目将基于如下环境:IDEA 2021、Maven 3.6.3、Tomcat 9.0.5、Java8 等。

项目创建

1、IDEA 新建 JavaWeb Maven 项目:
在这里插入图片描述在这里插入图片描述在这里插入图片描述

2、成功创建项目后,工程建构如下:
在这里插入图片描述如果创建 JavaWeb 项目创建失败(我遇到报错:Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webapp:1.0 ),解决方法可参见:Maven settings.xml配置(指定本地仓库、阿里云镜像设置) 修改 Maven 配置。

War 部署

1、点击菜单栏【File】–>【Project Structure…】,创建 Artifact(实际上一般情况下项目会自动创建好):
在这里插入图片描述2、点击菜单栏【Run】–>【Edit Configurations…】,将 War 包部署到 Tomcat 中:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
3、run 运行项目,启动 Tomcat 服务器,IDEA 会自动将项目代码打包成 War 并部署到 Tomcat 容器的 webapps 目录下,随即便可在浏览器中访问到创建的 JavaWeb 服务:
在这里插入图片描述

在这里插入图片描述
自此便完成了 IDEA 中将 JavaWeb 的 War 包部署到 Tomcat 服务器上并运行服务。

手动部署

上面借助 IDEA 进行 War 包生成并部署到 Tomcat 服务器中时,封装了很多细节,为了更好地理解 War 包部署到 Tomcat 的过程,下面来进行手动 War 包生成、部署。

WAR的打包

1、进入刚创建的 MyWeb 工程项目路径下,先来看看 IDEA 刚才自动创建的 target 文件夹下编译生成的 MyWeb.war 文件:
在这里插入图片描述
2、修改文件后缀(.war 改为 .rar)并解压缩,发现 war 包封装压缩了整个项目的资源文件:
在这里插入图片描述
3、删除 target 文件夹,进入 cmd 命令窗口,执行命令jar -cvf MyWeb.war *,手动打包生成项目 War 包:
在这里插入图片描述

Tomcat部署

1、将上面手工生成的 MyWeb.war 文件复制放到本地 Tomcat 服务器的\webapps\目录下:
在这里插入图片描述
2、手动启动 Tomcat 服务器:
在这里插入图片描述在这里插入图片描述3、此时返回查看 Tomcat 服务器的\webapps\目录,即可看到 MyWeb.war 已经被自动解压缩并生成 MyWeb 工程文件夹:
在这里插入图片描述
4、浏览器此时便可访问部署的 Web 服务:
在这里插入图片描述

总结

以上就是如何创建 JavaWeb 项目、生成 War 包并部署到 Tomcat 的方法与过程,虽然内容很基础很简单,但也算是进一步理解了 Web 应用的部署过程。

  • 8
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tr0e

分享不易,望多鼓励~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值