pom.xml常用标签元素:
modelVersion
指定了当前pom版本
groupId
反写的公司网址+项目名
artifactId
项目名+模块名
version
版本号 第一个0表示大版本号,第二个0表示大版本号,第三个0表示大版本号 0.0.1snapshot快照
packaging
打包方式 默认是jar
name
项目的描述名
url
项目的地址
description
项目描述
developers
开发人员信息
licenses
许可证信息
dependencies
dependency
scope
依赖范围
optional
设置依赖是否可选
exclusion
dependencyManagement
依赖管理 不会被运行
build
plugins
插件列表(指出座标)
parent
对父模块的继承
modules
定义多个模块 一起进行编译
dependency scope
:指定依赖范围
--compiler:默认的范围,编译测试运行都有效
--provided:编译测试时有效
--runtime:测试和运行时有效
--test:测试时有效
--system:与本机系统相关联,可移植性差
--import:导入的范围,只在dependencyManagement中使用,表示从其他的pom中导入dependency的配置
依赖具有传递性所以如果需要去除不需要的依赖则
<exclusions>
<groupId>项目ID</groupId>
<artifactID>项目名+模块名</artifactID>
</exclusions>
依赖冲突的解决
1.短路优先:
A->B->X(v1.0),A->C->D->X(v2.0)
A-->X(v1.0)
2.声明顺序:
A->B->X(v1.0),A->C->X(v2.0),A-pom.xml: ... <dep C> <dep B> ...
A-->X(v2.0)
路径长度相同时,哪个dependency先在pom.xml声明,哪个就优先
继承
1.应用场景:组件聚合时,多个组件使用相同的依赖导致聚合后出现重复,使用一个父组件定义该依赖,然后有需要的组件继承该组件,聚合时就不会重复.
2.父组件定义依赖
在父组件–>dependencyManager
–>dependencies
下定义dependency
注意,dependencyManager
下定义的dependency
,该组件不依赖
3.继承父组件
parent
标签下引用父组件的座标
创建dependency
引用,只有groupId
和artifactId
子元素
继承 子pom.xml的写法,先
<parent>
<groupId>项目ID</groupId>
...
...
<parent>
聚合(将多个模块聚合)
1.创建聚合项目 proj-aggreation
2.packaging为pom
3.使用modules定义要聚合的模块
<modules>
<module>../proj-m1</module>
<module>../proj-m2</module>
</modules>