maven 坐标与依赖冲突解决方式

 

1. maven 坐标简介

每个maven项目都有一个坐标

groupId + artifactId + version + packaging + classifier,五个维度的坐标,唯一定位一个依赖包。

任何一个项目,都是用这五个维度唯一定位一个发布包

实际上后面两个维度较为少用,大多数的场景下,唯一定位一个依赖的就是三个维度,groupId + artifactId + version

2.maven坐标设置

groupId:是以所在公司或者组织的官网的域名倒序来开头,然后加上项目名称

比如说,你现在在卡猫,www.collmall.com,公司里任何一个项目的开头,就可以用com.collmall来打头

artifactId:其实就是项目中的某个模块,或者某个服务。

version:该工程的版本号

packaging:这个工程的发布包打包方式,一般常用的就jar和war两种,java -cp执行一个jar包,war可以放到一个tomcat容器里去跑的web工程。

classifier:很少用,定义某个工程的附属项目,比如hello-world工程的,hello-world-source工程,就是源码,可能是类似于hello-world-1.0-SNAPSHOT-source.jar这样的东西。

 

3.依赖范围

<scope></scope>

compile:默认,对编译、测试和运行的classpath都有效。一般都是用这种scope

test:仅仅对于运行测试代码的classpath有效,编译或者运行主代码的时候无效,仅仅测试代码需要用的依赖一般都会设置为这个范围。

provided:编译和测试的时候有效,但是在运行的时候无效,因为可能环境已经提供了,比如servlet-api。

runtime:测试和运行classpath有效,但是编译代码时无效。

 

4.可选依赖

<optional>true</optional>

此时依赖传递失效,不会向上传递。

 

5.如何解决这样的依赖冲突

使用 mvn dependency:tree  命令,用dependency插件的tree goal,执行,进行依赖链条分析。

 剔除冲突的依赖

<exclusions>

    <exclusion>

        <groupId></groupId>

        <artifactId></artifactId>

    </exclusion>

</exclusions>

 

再次执行 mvn dependency:tree ,查看maven依赖情况

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潇凝子潇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值