【运维面试】面试官: jar包和war包有什么区别?

前言

做java开发的jar包和war包接触的比较多,做运维的也会接触到,运维的这个问题一般是问: 开发人员给你的包是jar包还是war包。

因为培训机构的小伙伴没有接触过java,所以分不清jar和war的区别。

jar包

java的归档文件,java程序可以打包成jar包

jar包就是别人写好的一些类,然后对这些类进行打包,开发人员可以将这些jar包引入到自己的项目中,使用这些类和属性。
jar包一般放在lib目录下

war 包

war包是一个web模块,可以直接运行,一般开发好的网站,打包后部署到tomcat的网站根目录下,然后重启tomcat,这个包就可以自动解压,相当于代码发布。

war包是java web程序打的包

war包里包括:

  • 代码编译成的 class文件
  • 依赖包
  • 配置文件
  • html,jsp

所以一个war包可以理解为是一个网站项目

生成一个war 文件: jar -cvf web0922.war
解压一个war文件: jar -xvf web0922.war

maven

maven是什么?
可以这么理解,有两个项目,项目1依赖 一些jar包, 项目2也需要依赖这些jar包。
通常的做法是: 把jar包导入项目1, 项目2也需要,那就再把jar也导入项目2一份。

如果有10个项目,我们就导入10次,比较麻烦, 有没有办法可以把jar包集中在一个地方,比如 192.168.1.66/var/lib/
需要什么包就去这个路径下去自动下载?

这个时候maven就出现了。

有没有想起一个叫yum的东西,虽然不一样,但原理类似。

总结

关于jar包和war包的区别问的比较多,面试官主要是看你有无工作经验,所以不用担心。

上一篇:SpringBoot: war包打包


下一篇:springboot项目打war包发布到tomcat遇到的问题