jar包和war包有什么区别啊

4个月前 (04-19 19:21)阅读2回复0
fayouxi
fayouxi
  • 管理员
  • 注册排名1
  • 经验值740780
  • 级别管理员
  • 主题148156
  • 回复0
楼主

jar包和war包有什么区别啊

jar包和war包的区别:;

1、war是一个web模块,其中需要包括WEB-INF,是可以直接运行的WEB模块;jar一般只是包括一些class文件,在声明了Main_class之后是可以用java命令运行的。;

2、war包是做好一个web应用后,通常是网站,打成包部署到容器中;jar包通常是开发时要引用通用类,打成包便于存放管理。;

3、war是Sun提出的一种Web应用程序格式,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织;classes目录下则包含编译好的Servlet类和Jsp或Servlet所依赖的其它类(如JavaBean)可以打包成jar放到WEB-INF下的lib目录下。

springboot项目打包成war用tomcat运行好还是打包成jar直接启动好?为何

Spring Boot 为我们提供了两种打包的方式:jar 和 war,开发人员可以很方便地修改两种打包方式,那么打包成哪种方式启动比较好呢?

Jar

Spring Boo 默认的打包方式就是 jar,因为“约定优于配置”的原则,所以我们什么也不配置,打出来的包就是 jar 格式的,当然我们也可以在 pom.xml 中加上一行配置(我一般用 maven)。

<packaging>jar</packaging>

在 <build> 内配置打包的名称,就完成了打包的配置:

jar包和war包有什么区别啊

最后执行打包命令即可:

mvn clean package

打包完成后,在项目的 target 目录下会生成一个 jar 包,也就是我们打包好的项目代码了;Spring Boot 打成的 jar 包和普通的 jar 包还是有一定区别的,关键就在于Spring Boot 打成的 jar 包包含了自己所依赖的其他 jar 包,并且内置了容器,默认把 Tomcat 也打进了 jar 包(也可以换成 jetty、undertow),我们可以直接运行这个 jar 包。

War

要把代码打成 war 包要分成以下几个步骤:

1. 修改 pom.xml 文件中的配置,将打包方式 <packaging> 设置成 war;

2. 排除内置的 Tomcat 容器,也就是不要把 Tomcat 包进来了;

3. 修改入口 *** ,让启动类继承 SpringBootServletInitializer,并且覆盖 configure *** ;或者单独创建个类继承这个类也行。

jar包和war包有什么区别啊

如果采用了 war 包部署,项目中配置文件中的一些配置将失效,比如 port、servlet.context-path 等;打完的包我们可以部署在 Tomcat 或其他的 web 容器中。

Jar or War

首先表明,我是倾向于使用 jar 包部署的,我们项目也是这么做的。至于选择哪种部署方式,可以考虑这几点:

  • war 包不排除 Tomcat 容器直接打包,我们甚至可以通过 java -jar xxx.war 的方式启动,这种情况先不做考虑;打包成 jar 还是 war,主要讨论的是使用内置容器还是外置容器的问题;

  • 如果项目中有使用 *** P,那么使用 war 包部署会更方便一些,虽然我们也可以通过配置集成 *** P 通过 jar 包方式运行;新项目的话就不要用 *** P 了;

  • 如果公司用的 web 容器不是 Tomcat、Jetty 或 undertow,那就只能打成 war 包部署;

  • 如果公司一直使用 Tomcat 部署,对于 Tomcat 本身的优化有一定的能力,有完善的脚本、工具什么的,可以考虑使用 war 包部署;

  • 我比较倾向于 jar 包部署,使用 Spring Boot 的内置容器,还是因为这样做,可以屏蔽(部分)运行环境的差异,开发人员开发出来的代码,打包好部署在测试、生产环境,我们并不需要单位每个环境之间 Tomcat 的配置可能有所不同,导致我们的程序无法正常运行,这可以让我们的交付能力变强。

jar包和war包有什么区别啊

所以有可能的话,可以尝试使用 docker,上面说到的屏蔽(部分)运行环境的差异,就变成了屏蔽(绝大部分)运行环境的差异了。

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

0
回帖

jar包和war包有什么区别啊 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息