返回顶部
首页 > 资讯 > 精选 >Maven依赖关系是什么
  • 620
分享到

Maven依赖关系是什么

2023-06-26 19:06:05 620人浏览 八月长安
摘要

这篇文章主要介绍“Maven依赖关系是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Maven依赖关系是什么”文章能帮助大家解决问题。1.何为依赖?我们在平时的项目开发中也是同理,你需要依赖一些

这篇文章主要介绍“Maven依赖关系是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Maven依赖关系是什么”文章能帮助大家解决问题。

1.何为依赖?

我们在平时的项目开发中也是同理,你需要依赖一些东西才能实现相应的功能,但相应的功能或许也可以依赖其它的东西实现,比如数据库操作吧,你可以依赖hibernate,但你也可以通过mybatis来做。

这就是所谓的依赖关系咯。

以前我们需要手动的去找hibernate或者mybatis的jar包,系统抛异常我们还不知哪里报错,通过琢磨才明白没有引入相应的jar包,然后就去找啊找,找到了然后引入到工程当中。在这里我们就看到maven的好处了,它就是一个仓库,仓库里面有各种各样的包,想要什么就在pom.xml中依赖一下就好了,就算仓库中没有的包也可以把它扔到仓库中,想用的时候就依赖一下。

2.依赖传递的范围

(1)根据Jar包的不同,需要为其设置不同的传递方式,即传递范围。Maven中的依赖传递范围设置在<scope>标签中。其取值有6种:

1)compile

第1类Jar包应设置的范围。是默认值。其会向下传递该依赖。

2)test

第2类Jar包应设置的范围。其不会向下传递该依赖。

3)provided

第3类Jar包应设置的范围。其不会向下传递该依赖。

4)runtime

第4类Jar包应设置的范围。其会向下传递该依赖。

5)system

不从本地仓库查找指定的依赖,而从<systemPath>路径查找。

3.依赖关系分类

A.直接依赖

项目A要用到别的项目B的架构的东西,所以项目A直接依赖B项目

B.间接依赖

项目B依赖A,C依赖B,那么C间接依赖A

C.依赖传递性

Maven的依赖是具有传递性的,比如A-&gt;B,B-&gt;C,那么A间接的依赖于C,这就是依赖的传递性,其中A对于B是第一直接依赖,B对于C是第二直接依赖,C为A的传递性依赖。

D.可选依赖与排除依赖

传递性依赖会给项目隐式的引入很多依赖,这极大的简化了项目依赖的管理,但是有些时候这种特性也会带来问题,它可能会把我们不需要的jar包也引入到了工程当中,使项目结构变得更复杂。或者你想替换掉默认的依赖换成自己想要的jar包,这时候就需要用到依赖排除。

Maven依赖关系是什么

例子中spring-core包依赖了commons-logging包,我们使用exclusions元素声明排除依赖,exclusions可以包含一个或者多个exclusion子元素,因此可以排除一个或者多个传递性依赖。需要注意的是,声明exclusions的时候只需要groupId和artifactId,而不需要version元素,这是因为只需要groupId和artifactId就能唯一定位依赖图中的某个依赖。换句话说,Maven解析后的依赖中,不可能出现groupId和artifactId相同,但是version不同的两个依赖。

Maven依赖关系是什么

E.依赖冲突(调解)

下面我们来思考这样一个问题,如果A-&gt;B-&gt;C-&gt;X(1.0),A-&gt;D-X(2.0),即A间接依赖X,我们可以看到有两条路径都依赖X,那么maven将会选择哪个版本的X?maven当中有一套自己的规则,我们来说明一下,maven传递性依赖的一些规则以及如何排除依赖冲突。

Maven里面对于传递性依赖有以下几个规则:

1.最短路径原则:如果A对于依赖路径中有两个相同的jar包,那么选择路径短的那个包,路径最近者优先,上述会选X(2.0)。

2.第一声明优先原则:如果A对于依赖路径中有两个相同的jar包,路径长度也相同,那么依赖写在前面的优先。例如:A->B->F(1.0),A->C->F(2.0),会选F(1.0)。

3.可选依赖不会被传递,如A->B,B->;C,B->;D,A对B直接依赖,B对C和D是可选依赖,那么在A中不会引入C和D。可选依赖通过optional元素配置,true表示可选。如果要在A项目中使用C或者D则需要显式地声明C或者D依赖。

版本号统一管理

聚合

在Maven中,可能我们要做多个test,但是一个一个的测试去做,这样会很麻烦,为了简单方便,我们把所有的test package,都汇聚到一个package中,我们利用这个测试可以进行所有的test的测试,这个过程就是聚合。目前菜鸟的水平来看这个聚合,主要功能就是方便Test的!

关于“Maven依赖关系是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: Maven依赖关系是什么

本文链接: https://lsjlt.com/news/308937.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Maven依赖关系是什么
    这篇文章主要介绍“Maven依赖关系是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Maven依赖关系是什么”文章能帮助大家解决问题。1.何为依赖?我们在平时的项目开发中也是同理,你需要依赖一些...
    99+
    2023-06-26
  • Maven的传递性依赖是什么
    Maven的传递性依赖指的是当一个项目依赖于另一个项目时,如果被依赖的项目又依赖于其他项目,那么这些依赖也会被自动引入到当前项目中。...
    99+
    2024-04-09
    Maven
  • maven怎么排除依赖包的子依赖
    在Maven中,排除依赖包的子依赖可以通过在pom.xml文件中使用标签来实现。例如,假设要排除spring-boot-starte...
    99+
    2023-09-23
    maven
  • idea如何查找maven依赖、查看依赖关系、删除重复的jar包
    一 先装一个管理pom依赖的插件 File–>Settings–>Plugins–>搜索maven–>找到Maven Helper安装–>重启idea 打开pom.xml剔除重复的包 1 选择Dep...
    99+
    2023-09-30
    intellij-idea jar java
  • maven循环依赖解决的方法是什么
    Maven循环依赖的解决方法有以下几种:1. 模块重构:将循环依赖的模块进行重构,将共享的代码提取出来,放在一个新的模块中,其他模块...
    99+
    2023-09-29
    maven
  • maven项目导入依赖的方法是什么
    要导入依赖到Maven项目中,可以按照以下方法进行:1. 在项目的pom.xml文件中添加依赖配置。pom.xml是Maven项目的...
    99+
    2023-08-08
    maven
  • 关于maven依赖${xxx.version}报错问题
    目录maven依赖 ${xxx.version}报错在pom文件加入以下配置即可解决maven依赖的版本号报错解决(玄学)玄学解决maven依赖 ${xxx.version}报错 p...
    99+
    2024-04-02
  • maven多个项目之间的依赖关系管理
    本篇内容主要讲解“maven多个项目之间的依赖关系管理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“maven多个项目之间的依赖关系管理”吧!1.应用Aggregation管理多个子项目Mave...
    99+
    2023-06-17
  • maven依赖的version声明控制方式是什么
    这篇“maven依赖的version声明控制方式是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“maven依赖的vers...
    99+
    2023-06-26
  • 怎么排除Maven依赖项的传递性依赖
    有以下几种方法可以排除Maven依赖项的传递性依赖: 使用元素:在pom.xml文件中,可以使用元素排除指定依赖项的传递性依赖。例...
    99+
    2024-04-09
    Maven
  • 关于Maven依赖冲突解决之exclusions
    目录Maven依赖冲突解决之exclusions1. 背景2. 解决方式场景解决方式Maven解决依赖冲突总结实例分析解决办法命令分析小试牛刀Maven依赖冲突解决之exclusio...
    99+
    2024-04-02
  • ASP.NETCore依赖关系注入
    1.前言 面向对象设计(OOD)里有一个重要的思想就是依赖倒置原则(DIP),并由该原则牵引出依赖注入(DI)、控制反转(IOC)及其容器等老生常谈的概念,初学者很容易被这些概念搞晕...
    99+
    2024-04-02
  • PHP 调试 Composer 依赖:解决依赖关系问题
    调试 composer 依赖关系问题解决依赖关系问题的方法:检查 composer.lock 文件使用 composer show-root-requires强制刷新依赖关系设置调试模式...
    99+
    2024-05-12
    php composer
  • maven怎么添加本地依赖
    要添加本地依赖到Maven项目中,可以使用Maven的`system`作用域来引用本地的jar文件。 以下是添加本地依赖的步骤: ...
    99+
    2023-10-27
    maven
  • maven依赖冲突的原因及解决方法是什么
    Maven依赖冲突的原因可能是由于以下几个因素:1. 版本不匹配:当项目中存在多个依赖项,并且这些依赖项使用了不同的版本时,可能会导...
    99+
    2023-09-23
    maven
  • maven依赖爆红的原因及解决方法是什么
    Maven依赖爆红的原因可能有以下几种:1. 缺少依赖:Maven项目的pom.xml文件中可能缺少了某些依赖的声明,导致编译器无法...
    99+
    2023-09-17
    maven
  • 怎么实现Java模块与inter-module Maven构建测试依赖关系
    这篇文章主要介绍“怎么实现Java模块与inter-module Maven构建测试依赖关系”,在日常操作中,相信很多人在怎么实现Java模块与inter-module Maven构建测试依赖关系问题上存在疑惑,小编查阅了各式资料,整理出简...
    99+
    2023-06-02
  • idea怎么离线导入maven依赖
    要离线导入Maven依赖,您需要执行以下步骤:1. 在离线环境中下载所需的Maven依赖的JAR文件。您可以在其他计算机上使用Mav...
    99+
    2023-09-16
    idea maven
  • Maven坐标与依赖怎么配置
    这篇文章主要介绍了Maven坐标与依赖怎么配置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Maven坐标与依赖怎么配置文章都会有所收获,下面我们一起来看看吧。1. 坐标-找到项目依赖的重要依据<grou...
    99+
    2023-06-26
  • maven怎么修改依赖包版本
    要修改 Maven 项目的依赖包版本,可以按照以下步骤进行操作: 打开项目的 pom.xml 文件。 在 标签中找到需要修改版本...
    99+
    2023-10-23
    maven
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作