Maven POM
只要提到 Maven 就离不开 pom.xml,POM 全称为 Project Object Model,这个文件在项目中常常是被用来配置各种需要用到的依赖,也可以配置不同环境下项目的参数信息。
1 | <project xmlns = "http://maven.apache.org/POM/4.0.0" |
基本元素
project
是 pom.xml 文件描述符的根modelVersion
指定 pom.xml 符合哪个版本的描述符,maven 2 和 3 只能为 4.0.0parent
用来表示当前 pom 文件继承自的父类 pom.xml 文件
依赖配置
groupId
、artifactId
、version
与基本配置中的意义相同
maven 根据 groupId、artifactId 和 version 组成的 groupId:artifactId:version 来唯一识别一个 jar 包
其中,version
表示一个项目的特定版本,在使用 maven 进行版本管理的时候有几个特殊的关键字:
snapshot
快照,alpha
内部测试,beta
公测,release
稳定,GA
正式发布
Scope 有 5 种可用的限定范围:
compile
: maven 的默认范围,要求编译、测试、运行阶段都需要模块对应的 jar 包在 classpath 中provided
: 模块对应的 jar 包在编译、测试的 classpath 中runtime
: 模块对应的 jar 包在测试、运行时的 classpath 中test
: 模块对应的 jar 包在测试的 classpath 中system
: 模块对应的 jar 包在编译、测试的 classpath 中,与本机系统关联,可移植性差
继承
引入 parent
标签可以让当前 POM 继承自一个父 POM,父 POM 中包含一些公共依赖并统一管理这些依赖。如果需要改变公共依赖的版本信息,只需要修改父 POM 包,继承了父包的子 POM 都能同步该更新。