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

    你可能感兴趣的文章
    MySQL 索引的面试题总结
    查看>>
    mysql 索引类型以及创建
    查看>>
    MySQL 索引连环问题,你能答对几个?
    查看>>
    Mysql 索引问题集锦
    查看>>
    Mysql 纵表转换为横表
    查看>>
    mysql 编译安装 window篇
    查看>>
    mysql 网络目录_联机目录数据库
    查看>>
    MySQL 聚簇索引&&二级索引&&辅助索引
    查看>>
    Mysql 脏页 脏读 脏数据
    查看>>
    mysql 自增id和UUID做主键性能分析,及最优方案
    查看>>
    Mysql 自定义函数
    查看>>
    mysql 行转列 列转行
    查看>>
    Mysql 表分区
    查看>>
    mysql 表的操作
    查看>>
    mysql 视图,视图更新删除
    查看>>
    MySQL 触发器
    查看>>
    mysql 让所有IP访问数据库
    查看>>
    mysql 记录的增删改查
    查看>>
    MySQL 设置数据库的隔离级别
    查看>>
    MySQL 证明为什么用limit时,offset很大会影响性能
    查看>>