什么是传递性 Maven 依赖?

问题描述 投票:0回答:4

这个问题旨在澄清“传递依赖”到底是什么以及它如何在 Maven 中以非常高的级别工作。 我的定义:在像

A --> B --> C

这样的依赖树中,C是A的传递依赖。假设 B 的范围 compileA 内。 如果

C

B 内具有 compile 范围,则将 B 声明为 A 的依赖项就足以使用 Maven 构建 A。但是,如果 CB 内具有 provided 范围,那么当 Maven 构建 A 时,构建不会自动针对 C 编译 A,除非 A 在其依赖项中声明 C 这是正确的吗?

maven dependencies transitive-dependency
4个回答
81
投票

Maven 依赖项有两种类型:

  • 直接:

    这些是在 pom.xml 文件的

    <dependencies/>
    部分下定义的依赖项。
    
    

  • 传递性:

    这些依赖项是直接依赖项的依赖项。

  • 具有
provided

范围的依赖关系意味着:


要么从最终工件中排除(例如,对于
    war
  • 文件,您不希望包含
    servlet-api
    servlet-jsp
    等)
    或覆盖——继承这些的项目定义版本和/或覆盖范围

2
投票
JUnit

标签下的

pom.xml
中添加
<dependencies>
作为依赖项。它将下载另一个
hamcrest-core-1.3.jar
文件,它位于
Maven依赖项下,这个.jar文件可以称为
Transitive dependency

资源:-

https://youtu.be/ypVE8EgDzzI


0
投票


-8
投票

© www.soinside.com 2019 - 2024. All rights reserved.