博客
关于我
项目打包发布之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 中随机抽样:order by rand limit 的替代方案
    查看>>
    MySQL 为什么需要两阶段提交?
    查看>>
    mysql 为某个字段的值加前缀、去掉前缀
    查看>>
    mysql 主从
    查看>>
    mysql 主从 lock_mysql 主从同步权限mysql 行锁的实现
    查看>>
    mysql 主从互备份_mysql互为主从实战设置详解及自动化备份(Centos7.2)
    查看>>
    mysql 主从关系切换
    查看>>
    MYSQL 主从同步文档的大坑
    查看>>
    mysql 主键重复则覆盖_数据库主键不能重复
    查看>>
    Mysql 事务知识点与优化建议
    查看>>
    Mysql 优化 or
    查看>>
    mysql 优化器 key_mysql – 选择*和查询优化器
    查看>>
    MySQL 优化:Explain 执行计划详解
    查看>>
    Mysql 会导致锁表的语法
    查看>>
    mysql 使用sql文件恢复数据库
    查看>>
    mysql 修改默认字符集为utf8
    查看>>
    Mysql 共享锁
    查看>>
    MySQL 内核深度优化
    查看>>
    mysql 内连接、自然连接、外连接的区别
    查看>>
    mysql 写入慢优化
    查看>>