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

    你可能感兴趣的文章
    mysqli
    查看>>
    MySQLIntegrityConstraintViolationException异常处理
    查看>>
    mysqlreport分析工具详解
    查看>>
    MySQLSyntaxErrorException: Unknown error 1146和SQLSyntaxErrorException: Unknown error 1146
    查看>>
    Mysql_Postgresql中_geometry数据操作_st_astext_GeomFromEWKT函数_在java中转换geometry的16进制数据---PostgreSQL工作笔记007
    查看>>
    mysql_real_connect 参数注意
    查看>>
    mysql_secure_installation初始化数据库报Access denied
    查看>>
    MySQL_西安11月销售昨日未上架的产品_20161212
    查看>>
    Mysql——深入浅出InnoDB底层原理
    查看>>
    MySQL“被动”性能优化汇总
    查看>>
    MySQL、HBase 和 Elasticsearch:特点与区别详解
    查看>>
    MySQL、Redis高频面试题汇总
    查看>>
    MYSQL、SQL Server、Oracle数据库排序空值null问题及其解决办法
    查看>>
    mysql一个字段为空时使用另一个字段排序
    查看>>
    MySQL一个表A中多个字段关联了表B的ID,如何关联查询?
    查看>>
    MYSQL一直显示正在启动
    查看>>
    MySQL一站到底!华为首发MySQL进阶宝典,基础+优化+源码+架构+实战五飞
    查看>>
    MySQL万字总结!超详细!
    查看>>
    Mysql下载以及安装(新手入门,超详细)
    查看>>
    MySQL不会性能调优?看看这份清华架构师编写的MySQL性能优化手册吧
    查看>>