首页 Java java教程 Maven依赖图解实例详解

Maven依赖图解实例详解

Jun 26, 2017 pm 02:31 PM
maven 依赖 图解

传递性依赖和依赖范围

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

在平时的开发中,如果我们的项目依赖了spring-core,依赖范围是compile,spring-core又依赖了commons-logging,依赖范围也是compile,那么我们的项目对于commons-logging这一传递性依赖的范围也就是compile。第一直接依赖的范围和第二直接依赖的范围决定了传递性依赖的范围。我们通过下面这个表格来说明,其中最左边一栏是第一直接依赖,最上面那一栏为第二直接依赖。中间交叉的是传递性依赖范围。

 

Compile

Test

Provided

Runtime

Compile

Compile

 

 

Runtime

Test

Test

 

 

Test

Provided

Provided

 

Provided

Provided

Runtime

Runtime

 

 

Runtime

例如:第一直接依赖范围是Test,第二直接依赖范围是Compile,那么传递性依赖的范围就是Test,大家可以根据这个表去判断。

仔细观察一下表格,我们可以发现这样的规律:

  • 当第二直接依赖的范围是compile的时候,传递性依赖的范围与第一直接依赖的范围一致;

  • 当第二直接依赖的范围是test的时候,依赖不会得以传递;

  • 当第二直接依赖的范围是provided的时候,只传递第一直接依赖的范围也为provided的依赖,且传递性依赖的范围同样为provided;

  • 当第二直接依赖的范围是runtime的时候,传递性依赖的范围与第一直接依赖的范围一致,但compile例外,此时传递性依赖的范围为runtime。

以上是Maven依赖图解实例详解的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Java Maven构建工具进阶:优化编译速度和依赖管理 Java Maven构建工具进阶:优化编译速度和依赖管理 Apr 17, 2024 pm 06:42 PM

优化Maven构建工具:优化编译速度:利用并行编译和增量编译。优化依赖关系:分析依赖项树,使用BOM(材料清单)管理传递依赖项。实战案例:通过示例说明优化编译速度和依赖项管理。

避免Maven环境配置常见错误:解决配置问题 避免Maven环境配置常见错误:解决配置问题 Feb 19, 2024 pm 04:56 PM

Maven是Java项目管理和构建工具,被广泛应用于Java项目的开发中。在使用Maven进行项目构建的过程中,往往会遇到一些常见的环境配置问题。本文将针对这些常见问题进行解答,并提供具体的代码示例,帮助读者避免常见的配置错误。1.Maven环境变量配置错误问题描述:在使用Maven时,如果环境变量配置不正确,可能导致Maven无法正常工作。解决方法:确保

CentOS安装gnuplot及CentOS安装向日葵缺少依赖 CentOS安装gnuplot及CentOS安装向日葵缺少依赖 Feb 13, 2024 pm 11:39 PM

LINUX是一种广泛使用的操作系统,它具有高度的可定制性和稳定性,CentOS是基于RedHatEnterpriseLinux(RHEL)源代码构建的一个免费开源的操作系统,被广泛用于服务器和桌面环境,在CentOS上安装软件包是日常使用中常见的任务之一,本文将介绍如何在CentOS上安装gnuplot和解决向日葵软件缺少依赖的问题。Gnuplot是一款功能强大的绘图工具,它可以生成各种类型的图表,包括二维和三维的数据可视化,要在CentOS上安装gnuplot,您可以按照以下步骤进行操作:1.

Mac系统上安装和配置Maven的完整指南 Mac系统上安装和配置Maven的完整指南 Jan 28, 2024 am 09:42 AM

详解Mac系统下安装Maven的方法与技巧作为一个开发者,在Mac系统上安装Maven是非常常见的需求,因为Maven是一个非常流行的构建工具,用于管理Java项目的依赖关系和构建过程。本文将详细介绍Mac系统下安装Maven的方法与技巧,并提供具体的代码示例。一、下载Maven首先,需要从官方网站(https://maven.apache.org/down

指导设定Maven本地库:高效管理项目依赖 指导设定Maven本地库:高效管理项目依赖 Feb 19, 2024 am 11:47 AM

Maven本地仓库配置指南:轻松管理项目依赖随着软件开发的发展,项目的依赖包管理变得越来越重要。Maven作为一个优秀的构建工具和依赖管理工具,在项目开发过程中扮演着至关重要的角色。Maven默认会从中央仓库下载项目依赖,但有时候我们需要将一些特定的依赖包保存到本地仓库中,以便离线使用或避免网络不稳定的问题。本文将介绍如何配置Maven本地仓库,以便轻松管理

基础教程:使用IDEA创建Maven项目 基础教程:使用IDEA创建Maven项目 Feb 19, 2024 pm 04:43 PM

IDEA(IntelliJIDEA)是一款强大的集成开发环境,可以帮助开发人员快速高效地开发各种Java应用程序。在Java项目开发中,使用Maven作为项目管理工具能够帮助我们更好地管理依赖库、构建项目等。本文将详细介绍如何在IDEA中创建一个Maven项目的基本步骤,同时提供具体的代码示例。步骤一:打开IDEA并创建新项目打开IntelliJIDEA

在CentOS7上安装Maven的完整指南 在CentOS7上安装Maven的完整指南 Feb 20, 2024 am 10:57 AM

CentOS7下如何安装Maven的详细教程Maven是一个流行的项目管理工具,由Apache软件基金会开发。它主要用于管理Java项目的构建、依赖管理和项目信息管理。本文将详细介绍在CentOS7系统中如何安装Maven的步骤,以及具体的代码示例。步骤一:更新系统在安装Maven之前,首先需要确保系统是最新的。打开终端,运行以下命令来更新系统:sudoy

ECharts是否依赖于jQuery?深入分析 ECharts是否依赖于jQuery?深入分析 Feb 27, 2024 am 08:39 AM

ECharts是否需要依赖jQuery?详细解读,需要具体代码示例ECharts是一个优秀的数据可视化库,提供了丰富的图表类型和交互功能,广泛应用于Web开发中。在使用ECharts时,很多人会有一个疑问:ECharts是否需要依赖jQuery呢?本文将对此进行详细解读,并给出具体的代码示例。首先,要明确的是,ECharts本身并不依赖jQuery,它是一个

See all articles