什么是pom文件?
POM文件(Project Object Model)是Maven项目的核心文件之一,它定义了项目的基本信息、依赖关系、构建配置等。POM文件是一个XML文件,包含了项目的坐标、依赖、插件、构建配置等信息。在Maven中,POM文件是项目的“脊梁”,所有的操作都是基于POM文件进行的。通常,POM文件位于项目的根目录下,文件名为pom.xml。
元素介绍
dependencies
在此元素下添加依赖,它可以包含多个< dependency>依赖。
dependency
< dependency>与< /dependency>之间有3个标识,分别如下。
groupId: 定义隶属的实际项目,坐标元素之一。
artifactId:定义项目中的一个模块,坐标元素之一,可以标识唯一的项目或库。
version:依赖或项目的版本,坐标元素之一。
scope
如果有一个在编译时需要而发布时不需要的JAR包,则可以用scope标签标记该包,并将其值设为provided。
properties
如果要使用自定义的变量,则可以在< properties>< /properties>元素中进行变量的定义,然后在其他节点中引用该变量。它的好处是:在依赖配置时引用变量,可以达到统一版本号的目的。
plugin
在创建Spring Boot项目时,默认提供了spring-boot-maven-plugin插件。它提供打包时需要的信息,将Spring Boot应用打包为可执行的JAR或WAR文件。
project:整个pom配置文件的根元素,所有的配置都是写在project元素里面的;
modelVersion:指定了当前POM模型的版本,对于Maven2及Maven 3来说,它只能是4.0.0;
groupId:组织名,通常为公司域名的倒叙
artifactId:这是项目的标识,通常是工程的名称,它在一个项目组(group)下是唯一的。
version:这是项目的版本号,用来区分同一个artifact的不同版本。
packaging:这是项目产生的构件类型,即项目通过maven打包的输出文件的后缀名,包括jar、war、ear、pom等。
parent元素可以指定父pom。用户可以通过增加parent元素来自定义一个父pom,从而继承该pom的配置。parent元素中包含一些子元素,用来定位父项目和父项目的pom文件位置。
插件管理
插件管理相关的元素有两个,包括pluginManagement和plugins。pluginManagement中有子元素plugins,它和project下的直接子元素plugins的区别是,pluginManagement主要是用来声明子项目可以引用的默认插件信息,这些插件如果只写在pluginManagement中是不会被引入的。project下的直接子元素plugins中定义的才是这个项目中真正需要被引入的插件。
远程仓库列表
远程仓库列表的配置,包括依赖和扩展的远程仓库配置,以及插件的远程仓库配置。在本地仓库找不到的情况下,maven下载依赖、扩展和插件,就是从这里配置的远程仓库中进行下载。
需要注意的是release和snapshot两者的区别。
release是稳定版本,一经发布不再修改,想发布修改后的项目,只能升级项目版本再进行发布
snapshot是不稳定的,一个snapshot的版本可以不断改变。项目在开发期间一般会使用snapshot,更方便进行频繁的代码更新