文章主要对pom文件中的packaging打包方式做一些介绍:
我们都知道pom文件可以对版本进行规范和统一,今天在使用pom文件的时候发现packaging有三种打包方式,写一篇博客来记录一下三种打包方式的不同。
packaging可以有pom,war,jar三种打包方式。
项目中使用maven进行模块化管理,使用pom文件维护各个模块之间的依赖和继承关系。在进行编写的时候,项目模块必定有很多重复的代码块,我们可以将这些重复的代码块抽取出来,形成一个单独的共用模块,之后再进行编写这些代码的时候只需要将抽取出来的共用的模块pom文件的GAV导入到接下来的模块中我们就可以使用了。
在使用maven进行模块化的管理时,一般都会有一个父级的项目,pom文件中的GAV坐标是必须要配置的,我们之后写的子项目模块可以使用< parent>标签继承父级项目,而在GAV的下边还会配置packaging的打包方式。所有的父级项目的pom文件的打包方式都要设置成pom。如果不做配置,packaging的默认打包方式为jar。在子项目中的GV如果不配置就会继承父级项目的GV坐标。子类项目的packaging值只能是war或jar。如果是需要部署的项目,一般是包含controller的module,需要打包成war类型,如果只是内部调用或者是作服务使用,则推荐打成jar包,是服务于war包的, 位于war包中的lib文件夹下。
简单来说,jar包就是别人已经写好的一些类,然后对这些类进行打包。可以将这些jar包引入到你的项目中,可以直接使用这些jar包中的类和属性,这些jar包一般放在lib目录下。
war是一个可以直接运行的web模块,通常用于网站,打成包部署到容器中。以Tomcat来说,将war包放置在其\webapps\目录下,然后启动Tomcat,这个包就会自动解压,就相当于发布了。简单来说,war包是JavaWeb程序打的包,war包里面包括写的代码编译成的class文件,依赖的包,配置文件,所有的网站页面,包括html,jsp等等。一个war包可以理解为是一个web项目,里面是项目的所有东西。
部署普通的spring项目用war包就可以,部署springboot项目用jar包就可以,因为springboot内置tomcat