本文档为本人学习交流所用,参考原文档:https://www.cnblogs.com/hoyong/articles/13034270.html
pom是Project Object Model(项目对象模型)的缩写,是Maven中的项目文件,可用于管理与配置依赖,组织信息,项目授权,远程仓库等等.一个Maven项目,可以没有任何代码,但不能没有pom.xml。
project是pom.xml的根元素,包含了一些约束信息。
pom的版本,这是Maven 2&3唯一支持的pom版本,而且不能忽略。
4.0.0
表示项目所属的组,通常是一个公司或者组织的名称 com.sunshinelife
表示项目的唯一标识. < artifactId>项目名
表示项目的版本号,通常来说项目的版本号分成三段:
主版本号.次版本号.修订版本号
主版本号:代表架构变动或者不兼容的实现.
次版本号:兼容性修改,功能增强.
修订版本号:bug修复.
版本号的后缀意味着项目的不同阶段:
SNAPSHOT:开发中的版本
RELEASE:正式发布版
M1,M2:M指里程碑,表示即将发布
RC:Release Candidate,发布候选
GA:General Availablity,基本可用版本
配置各种jar包的版本列表
8
8
UTF-8
UTF-8
1.8
2.7.3
2021.0.3
2.2.6.RELEASE
2.2.0
1.2.3
1.2.0.RELEASE
1.1.10
2.7.3
3.12.0
1.2.2
1.10.0
1.4.1
1.4
2.11.0
1.7.8
1.4.18
5.2.2
1.2.83
2.0
9.0.48
1.2.1
3.6
1.3
1.6.1
9.5.2.008
1.2.6.RELEASE
2.17.1
0.8.2.0
2.0.12
1.1.7
3.3.5
1.2.17-cloudera1
5.8.4
打包类型,没有提供的话默认值为jar,而咱们的父级项目packaging都是pom。
pom
Maven下载与在编译时链接依赖与其他所需要的目标,而且可以处理传递性依赖,使列表可以专注于项目所需的依赖.
依赖放在里面,包含若干个。
可用于配置不同jdk的,比如让一个同时支持jdk8与jdk11,可以选择使用哪一个,方便在不同jdk中使用.
对应的依赖类型,默认为jar,通常对应与packaging
scope表示类库与项目的关系
排除不需要的依赖
包含子元素exclusion,每个exclusion都包含groupId与artifactId。
模块是pom列出的项目,并作为一个组执行,每个模块通过pom文件或项目的相对路径进行列出.
,包含一组,每个可以定义不同的配置,包含的元素有:
:配置文件的id,比如测试的可以叫test.
:相关构建信息.
:模块信息.
:远程仓库信息.
:插件仓库信息.
:依赖信息.
:报表信息.
:依赖管理信息.
:分发管理
:activation是profile的关键,profile的强大之处是某些情况下才可以修改基本pom,这些情况通过activation指定.
我们创建一个maven项目时,idea会自动给我们生成一个pom.xml
4.0.0
org.example
demo_20230427
1.0-SNAPSHOT
8
8