博客
关于我
项目打包发布之war包和jar包
阅读量:538 次
发布时间:2019-03-08

本文共 1783 字,大约阅读时间需要 5 分钟。

当我们的项目完成并且需要上到服务器的调试或者发布的时候,我们需要将项目进行打包,并将打包后的文件部署到我们的应用服务器上。通常,我们会将项目打包成JAR包或者是WAR包。这两种包文件的内容和用途有着显著的不同,因此理解它们的区别对于项目的部署至关重要。


WAR包

WAR包的内容

WAR(Web Archive,网络应用程序文件)是与平台无关的文件格式,Similar to ZIP格式,但它允许以一个压缩文件的形式包含多种文件。Java Web项目通常会打成WAR包部署,因为WAR包包含了项目中所有必要的内容,包括:

  • 代码编译后的class文件
  • 包含的依赖包
  • 配置文件(如web.xml)。
  • 静态资源文件(如html,.js,css等)。

一个WAR包就像一个可以直接部署到应用服务器上的完整项目,因为它包含了项目中的所有内容。

WAR包的作用

WAR包的主要用途是将Java Web项目打包并进行部署。它是一个标准化的格式,支持大多数应用服务器(如Tomcat、JBAS等)。

WAR包的目录结构

WAR包的目录结构如下(以webapp.war为例):

webapp.war├── index.jsp              // 静态资源文件(可选)├── images├── META-INF              // Maven自动生成的目录├── WEB-INF              // 必须存在,且包含`web.xml`│   └── web.xml          // WAR包描述文件├── classes              // 屯真编译后的Java类文件│   └── action.class      // 示例类文件└── lib                  // 依赖的JAR包   ├── other.jar   └── share.jar└── subDirectories          // 可选,用于存放静态资源文件(如jsp,html,css等)

####943在 手 зат工具(如Idea)中,将项目打成WAR包的POM文件示例:

war

WAR包的部署

WAR包可以直接部署到支持WAR格式的应用服务器上。


JAR包

JAR包的内容

JAR(Java Archive)是类的归档文件,基于标准的ZIP格式,但与ZIP不同的是,JAR文件不仅用于压缩和发布,还常用于部署和封装库、组件和插件。此外,JAR文件可以被JVM和工具直接使用作为依赖或类库。

JAR包的作用

JAR包的主要用途包括:

  • 作为工具包和类库。
  • 作为应用工程和扩展的构建单元。
  • 用于部署组件、Applet或插件程序。
  • 存储与组件相关联的辅助资源。

JAR包的目录结构

JAR包的目录结构如下(以tools.jar为例):

tools.jar├── META-INF              // 存储包和扩展的配置数据│   └── MANIFEST.MF      // JAR包描述文件├── com                  // 存储项目中的类包│   └── test              // 包含测试类│       └── util.class     // 示例Java类

JAR包的部署

在Spring Boot项目中,JAR包可以直接部署,因为Spring Boot内置了应用Web服务器Tomcat。只需将项目打成JAR包即可运行。


Idea打包步骤

在Idea中将项目打包为WAR包或JAR包的步骤如下:

  • 清理项目:双击clean
  • 构建项目:双击package。-.cleaned 再双击package即可将项目打包为指定的包格式(WAR或JAR)。
  • 打包后,默认会保存在项目的target目录下。

  • 总结

    • WAR包与项目文件结构保持一致,适用于标准的Web项目部署。
    • JAR包不包含静态资源文件(如html,jsp等),仅存储类库和配置文件。
    • 在Spring Boot项目中,WAR包和JAR包都可以直接部署,但JAR包需要单独配置服务器(如Tomcat)。

    通过清晰的理解和合理的选择,您可以根据项目需求选择合适的打包格式,从而简化部署过程。

    转载地址:http://gesiz.baihongyu.com/

    你可能感兴趣的文章
    Postman还能做Mock?又学了一招!
    查看>>
    postman进行http接口测试
    查看>>
    Postman高阶技能:Collection集合批量运行!
    查看>>
    postMessage跨标签页共享数据
    查看>>
    QImage对一般图像的处理
    查看>>
    post为什么会发送两次请求?
    查看>>
    Post表单提交TextArea的值出现转译乱码问题 - Spring MVC处理表单提交
    查看>>
    Power BI 中的 Python 可视化需要什么设置?任何特定的 matplotlib 包版本或系统设置?
    查看>>
    Power BI:如何在 Power Query 编辑器中将 Python 与多个表一起使用?
    查看>>
    power english (3) main text -emotion mastery - focus
    查看>>
    POWER ENGLISH (6) - MODEL
    查看>>
    power english (1) —— passion
    查看>>
    Power English (1) 原文
    查看>>
    power English (3)原文
    查看>>
    POWER ENGLISH(7)- repetition
    查看>>
    SpringBoot中集成SpringBatch详细解析与实战示例(CSV文件读取十万条数据进行业务处理后写入Mysql数据库)
    查看>>
    powerbi 一张表在另外一张表中出现的数量_PowerBi之初步学习笔记
    查看>>
    QGIS怎样设置简体中文以及新建可编辑的多边形的图层
    查看>>
    PowerBuilder 使用自定义事件触发键盘Enter事件
    查看>>
    PowerCreatorCMS UploadResourcePic 任意文件上传漏洞复现
    查看>>