maven pom文件标签说明

groupId:项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。

artifactId:项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。

version:版本号。

url:项目地址。

packaging:打包方式,可以有pom.war,jarrar。

licenses:描述许可证信息。

parent:继承其他pom模型的属性。

properties:定义属性信息,这个节点一般用于定义一些属性,用来作为插件的默认值。在这里定义的属性可以贯穿Maven build的整个生命周期,Maven属性是值占位符,可以在pom中通过${XXX}符号来使用。

modules:聚合子模块,在多模块的项目中使用,用来定义子模块,一般多模块项目中,父模块的packaging都定义为pom。

developers:开发者信息。

dependencies:定义项目依赖,除了基本的groupId、artifactId、version坐标属性外,dependency节点中还包括如下的常用属性设置:type : 依赖的类型,默认是jar;classifier : 分类器,额外的jar坐标标记,用来依赖那些从同一个POM中打出的不同的jar包;scope : 依赖的jar的作用范围,可选(compile,runtime,test,system,provided)。

dependencies -> exclusions:排除依赖传递排除不需要的jar,解决兼容性问题的依赖。

repositories:配置远程仓库.

repositories->repository->id,repositories->repository->url:远程仓库名称和地址。

repositories->repository->snapshots:

    false

告诉Maven不要从这个仓库下载snapshot版本的构件。禁止从公共仓库下载snapshot构件是推荐的做法,因为这些构件不稳定,且不受你控制,你应该避免使用。

pluginRepository:用来配置maven插件的远程仓库。

dependencyManagement:声明依赖项,用来管理声明依赖项,最常见于spring boot项目中,在依赖节点只需要写groupId、artifactId就可以定位一个jar坐标,是因为spring boot的父pom中使用dependencyManagement声明了常用的依赖项,使用dependencyManagement管理的依赖只是声明了,如果没有显示的定义在< dependencies >节点中是不生效的。

distributionManagement:mvn install 会将项目生成的构件安装到本地Maven仓库,mvn deploy 用来将项目生成的构件分发到远程Maven仓库。本地Maven仓库的构件只能供当前用户使用,在分发到远程Maven仓库之后,所有能访问该仓库的用户都能使用你的构件。distributionManagement指定Maven分发构件的位置,Maven区别对待release版本的构件和snapshot版本的构件,snapshot为开发过程中的版本,实时,但不稳定,release版本则比较稳定。Maven会根据你项目的版本来判断将构件分发到哪个仓库。当我们自己搭建了私服,想要将jar包编译后上传到私服时,需要在这个节点配置仓库的地址

build:设置输入输出路径,为什么在使用Maven构建的项目中,项目编译后会在pom所在目录下生成target目录?是因为在build构建节点中有如下的默认的配置。

build -> resources:用来定义项目的资源路径,默认的路径为${basedir}/src/main/resources,在spring boot环境中,继承了spring boot的父pom属性。

build -> plugins -> plugin:定义构建插件plugin这个节点主要用来定义构建的插件,包括自定义和已经发布到中央仓库的。如spring boot环境想构建可执行的jar需要添加spring-boot-maven-plugin插件。

你可能感兴趣的:(maven pom文件标签说明)