Maven学习之pom.xml常用标签元素&&依赖冲突的解决&&继承 ( I )

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引用,只有groupIdartifactId子元素
继承 子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>

文章持续更新:欢迎各位小伙伴关注我的公众号:菜丸的程序屋。希望将我的不足之处给予指点,谢谢大家。喜欢Java,热衷学习的小伙伴可以加我微信: CaiWan_Y

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值