当前位置:   article > 正文

[Spring Boot]03 Maven常用的打包(packaging)类型_maven packaging的几种形式

maven packaging的几种形式

什么是pom.xml

POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的一个XML文件:pom.xml。此文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的继承和依赖关系等等。在Maven项目中,必须包含pom.xml文件。

Maven常用的打包类型

Maven项目常用的打包类型分为:jar、war、pom等类型。
默认打包类型为:jar。

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/xsd/maven-4.0.0.xsd">
  ...
  <packaging>jar</packaging>
  ...
</project>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
jar

1、jar文件(扩展名为.jar,Java Application Archive)包含Java类的普通库、资源(resources)、辅助文件(auxiliary files)等。
2、jar包是java打的包,一般只包括一些编译后class文件和一些部署文件,在声明了Main_class之后是可以用java命令运行的。
3、jar包通常是开发时要引用通用类,打成包便于存放管理。
4、常用于内部、接口、服务部署等。

war

1、war文件(扩展名为.war,Web Application Archive)包含全部Web应用程序。在这种情形下,一个Web应用程序被定义为单独的一组文件、类和资源,用户可以对war文件进行封装,并把它作为小型服务程序(servlet)来访问。
2、war包可以理解为javaweb打的包,是一个web模块,包括写的代码编译成的class文件,依赖的包,配置文件,所有的网站页面,包括html,jsp等等。一个war包可以理解为是一个web项目,里面是项目的所有东西。
3、war包需要发布到一个容器里面,拿Tomcat举例,将war文件包放置它的\webapps\目录下,启动Tomcat,这个包就可以自动进行解压到你的web目录,相当于发布了。
4、war是Sun公司提出的一种Web应用程序格式,与jar类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有Html和Jsp文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和Jsp或Servlet所依赖的其它类(JavaBean)。
5、常用于Web应用程序。

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/xsd/maven-4.0.0.xsd">
  ...
  <packaging>war</packaging>
  ...
</project>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
pom

项目中使用maven进行模块管理时,每个模块下对应都会有一个pom文件,因为pom文件中维护了各模块之间的依赖和继承关系。
使用maven进行模块划分管理时,一般都会有一个父级项目,pom文件除了GAV(groupId, artifactId, version)是必须要配置的,另一个重要的属性就是packaging打包类型,所有的父级项目的packaging都为pom(可以到pom.xml文件里面进行手动配置),packaging默认是jar类型,如果不作配置,maven会将该项目打成jar包。

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
 
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>my-parent</artifactId>
  <version>2.0</version>
  <packaging>pom</packaging>
</project>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

作为父级项目,还有一个重要的属性,那就是modules,通过modules标签将项目的所有子项目引用进来,在build父级项目时,会根据子模块的相互依赖关系整理一个build顺序,然后依次build。

<project xmlns="http://maven.apache.org/POM/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
 
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>my-parent</artifactId>
  <version>2.0</version>
  <packaging>pom</packaging>
 
  <modules>
    <module>my-project</module>
    <module>another-project</module>
    <module>third-project/pom-example.xml</module>
  </modules>
</project>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

子类项目的packaging值只能是war或者jar。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/364583
推荐阅读
相关标签
  

闽ICP备14008679号