Author:赵志乾
Date:2019-02-17
Declaration:All Right Reserved!!!
<!--project是根元素,通过其属性引入命名空间和schema文件-->
<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/maven-v4_0_0.xsd">
<!--parent元素用于引入父项目坐标-->
<!--若本项目中没有显示规定某个元素的值,则使用父项目中的对应值-->
<!--即该元素隐含设定默认值-->
<!--坐标包括group ID,artifact ID和 version-->
<parent>
<!--父项目组标识符-->
<groupId>父项目组Id</groupId>
<!--父项目构件标识符-->
<artifactId>父项目构建Id</artifactId>
<!--父项目版本号-->
<version>父项目版本号</version>
<!--relativePath元素指定父项目pom.xml文件的相对路径-->
<!--默认值是"../pom.xml",允许你指定一个不同的路径-->
<!--Maven在构建当前项目时,首先从当前项目寻找父项目pom文件-->
<!--如果不存在则relativePath路径下寻找-->
<!--如果还不存在,则在本地仓库寻找-->
<!--依然没找到的话,就在远程仓库寻找父项目pom文件-->
<relativePath/>
</parent>
<!--POM版本号-->
<modelVersion>4.0.0</modelVersion>
<!--本项目坐标三元组-->
<groupId>组Id</groupId>
<artifactId>构件Id</artifactId>
<version>版本号</version>
<!--项目产生的构件类型,例如jar、war、ear、pom-->
<packaging>jar</packaging>
<!--项目名称-->
<name>项目名称</name>
<!-- 项目的详细描述-->
<description>A maven project to study maven.</description>
<!--dependencies元素用于指定项目相关依赖-->
<!--这些依赖会自动从项目定义的仓库中下载-->
<dependencies>
<dependency>
<!--依赖项的坐标三元组-->
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
<version>3.8.1</version>
<!--依赖范围。在项目发布过程中,帮助决定哪些构件被包括进来
- compile :默认范围,用于编译
- provided:类似于编译,但支持你期待jdk或者容器提供,类似于classpath
- runtime: 在执行时需要使用
- test: 用于test任务时使用
- system: 需要外在提供相应的元素。通过systemPath来取得
- systemPath: 仅用于范围为system。提供相应的路径
- optional: 当项目自身被依赖时,标注依赖是否传递。用于连续依赖时使用-->
<scope>test</scope>
<!--当计算传递依赖时,从依赖构件列表里,列出被排除的依赖构件集-->
<!--即告诉maven你只依赖指定的项目,不依赖项目的依赖-->
<!--此元素主要用于解决版本冲突问题-->
<exclusions>
<exclusion>
<artifactId>spring-core</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
<!--可选依赖-->
<!--如果你在项目B中把C依赖声明为可选-->
<!--你就需要在依赖于B的项目(例如项目A)中显式的引用对C的依赖-->
<!--可选依赖会阻断依赖的传递性-->
<optional>true</optional>
</dependency>
</dependencies>
<!--dependencyManagement元素所管理的依赖项为其子项目的默认依赖项-->
<!--子项目中只须指定依赖三元组中的构件Id和组Id便可导入对应的默认依赖项-->
<!--子项目中也可覆盖默认依赖项配置-->
<dependencyManagement>
<dependencies>
<!--参考上述的dependencies/dependency元素-->
<!-- 其子元素的scope多了一个枚举值 “import”,用于多重继承,即将其作为父项目导入-->
<dependency>依赖项</dependency>
</dependencies>
</dependencyManagement>
</project>