博客
关于我
项目打包发布之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/

    你可能感兴趣的文章
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
    查看>>
    NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
    查看>>
    Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
    查看>>
    NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
    查看>>
    NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
    查看>>
    NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
    查看>>
    NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
    查看>>
    NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
    查看>>
    NIH发布包含10600张CT图像数据库 为AI算法测试铺路
    查看>>
    Nim教程【十二】
    查看>>
    Nim游戏
    查看>>
    NIO ByteBuffer实现原理
    查看>>
    Nio ByteBuffer组件读写指针切换原理与常用方法
    查看>>
    NIO Selector实现原理
    查看>>
    nio 中channel和buffer的基本使用
    查看>>
    NIO基于UDP协议的网络编程
    查看>>
    NISP一级,NISP二级报考说明,零基础入门到精通,收藏这篇就够了
    查看>>
    Nitrux 3.8 发布!性能全面提升,带来非凡体验
    查看>>
    NI笔试——大数加法
    查看>>