`

9-依赖的传递性

 
阅读更多

对于依赖的传递而言,主要是针对compile作用域传递 

<!-- 引入着两个模块工程包 他们所依赖的jar也会添加到library中 测试:可以注释下面引入的工程看效果 -->

  <!--2.依赖传递

           1. 在user-service引入user-core 和user-log 叫做依赖传递 前提是只传递 user-core 和user-log里的jar作用域等于 complier的 传递给user-service 

           2. 如果user-service和user-core 包中都有log4j.jar包 并且级别相同 则在依赖传递的时候会根据pom.xml从上到下执行顺序进行在user-servcie中添加依赖传递的jar包          

           3. user-core 有dbunit.jar dbunit.jar依赖commons-logging-1.0.4.jar(间接依赖)

              user-log 里直接使用<dependency>引入commons-logging-1.1.1.jar  (直接依赖)              

              user-service 通过依赖传递引入user-core和user-log时user-core 和user-log里有相同的jar包 则按照顺序引入

             但是在不同级别的时候 比如  user-core中通过引入dbunit.jar dbunit.jar依赖commons-logging-1.0.4引入了commons-logging-1.0.4 

            顺序就是user-service > user-core>dbunit.jar> commons-logging-1.0.4

            而引入user-log 距离是最短的所以采用user-log里的commons-logging的jar

    顺序就是 user-service > user-log > commons-loggging-1.1.1     

    如果user-service中有commons-logging 不管是几点几版本都会使用该版本引入距离最短  

    -->

   

     <dependency>

      <groupId>${project.groupId}</groupId>

      <artifactId>user-core</artifactId>

    </dependency>

    

     <dependency>

      <groupId>${project.groupId}</groupId>

      <artifactId>user-log</artifactId>

    </dependency>

 

 <!-- 3. 如果user-service中有commons-logging 不管是几点几版本都会使用该版本引入距离最短 -->     

  <!--   <dependency>

<groupId>commons-logging</groupId>

<artifactId>commons-logging</artifactId>

<version>1.0.4</version>

</dependency> -->

 

 

  <!--依赖传递  范围

  (该jar 用于综合测试依赖范围 和 依赖的传递 配合使用)

  1.如果去掉<scope>test</scope> 该jar 将不会依赖传递给user-service jar包中

  2.如果加上<scope>test</scope> 该jar 将会依赖传递给user-service jar包中

  -->

<dependency>

<groupId>dbunit</groupId>

<artifactId>dbunit</artifactId>

</dependency>

依赖传递 意思就是如果service引入core工程 只会将core里引入的jar包传递给service前提是scope等于compile里的jar包传递给service

如果scope等于test 将不会进行传递到service lib下

分享到:
评论

相关推荐

    向依赖关系宣战--依赖倒置、控制反转和依赖注入辨析

    依赖倒置、控制反转和依赖注入是面向对象编程中用于减少模块间耦合的重要原则,它们都是为了提高软件系统的灵活性和可维护性。在本文中,我们将深入探讨这些概念及其在实际应用中的区别。 首先,依赖倒置原则...

    Go-依赖注入的loopflow控制让编写和测试后台goroutines变得简便

    Channel可以用来传递数据和控制信号,而WaitGroup用于等待一组goroutines完成,Mutex则用于保护共享资源的并发访问。结合依赖注入,我们可以创建一个专门负责启动和管理goroutines的Director类(对应于压缩包中的go-...

    MVC权限设计-依赖接口编程系列3

    DI允许我们在运行时决定使用哪个具体实现,这样就无需硬编码依赖关系,提高了代码的可扩展性和可维护性。 例如,`IAuthorizationService`可能有一个`HasPermission`方法,接受用户ID和操作码作为参数,返回一个布尔...

    json-lib-2.3-jdk15开发包和所有依赖包

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传递数据。`json-lib`是一个Java库,它提供了将Java对象转换为JSON格式,以及从JSON字符串反序列化回Java对象的功能。`...

    函数依赖和多值依赖的推理规则

    这些依赖关系对于确保数据的一致性和完整性至关重要。 首先,我们来详细解释函数依赖(Functional Dependency,FD)。函数依赖表示一个属性集X能够唯一确定另一个属性Y的值。在关系模式R(U)中,如果对于所有的关系r...

    Validity-2020年电子邮件可传递性报告(英文)-2020.pdf

    ### 2020年电子邮件可传递性报告关键知识点总结 #### 一、报告概览 - **报告名称**:2020年电子邮件可传递性报告 - **发布机构**:Validity - **报告类型**:行业咨询 - **核心内容**:全球范围内的电子邮件传递率...

    java-maven-apache-ant-zip-2.3-jar包依赖

    这个文件对于Maven来说很重要,因为它允许Maven理解并正确处理依赖的传递性,即如果该依赖还依赖于其他库,Maven会自动处理这些依赖的下载和管理。 在实际开发中,使用Maven的`&lt;dependency&gt;`标签将`...

    java-maven-analyzer-2012-u6-jar包依赖

    对于依赖管理,Maven使用一种传递性原则,这意味着如果一个项目依赖A,A又依赖B,那么在构建项目时,Maven也会自动处理B的依赖。然而,这也可能导致依赖冲突,即两个不同的依赖路径引入了同一个库的不同版本。在这种...

    java调用kettle的依赖包

    在Java开发中,有时我们需要与不同的工具或框架集成,例如Kettle(也称为Pentaho Data Integration或...确保正确导入依赖、管理执行流程,并充分利用Kettle提供的各种功能,可以大大提高开发效率和数据处理的灵活性。

    Maven 依赖详细理解.pdf

    Maven是Apache软件基金会的一个项目,用于项目对象模型(Project Object Model)的管理和构建自动化。...通过合理地使用POM文件、依赖范围、依赖调解和传递性依赖等机制,我们可以更好地构建和维护我们的Maven项目。

    行业分类-外包设计-树脂传递模塑模具及树脂传递模塑成型系统的说明分析.rar

    - 能源:风电叶片是RTM技术的一大应用领域,大型叶片的制造依赖于RTM的高效成型能力。 - 建筑:RTM可用于生产建筑构件,如预应力混凝土面板和装饰元素。 - 其他:包括船艇、运动器材、电子设备外壳等,都可见到...

    Maven传递依赖和依赖的规则.docx

    传递依赖是指在Maven项目中,当一个项目A依赖于另一个项目B,而项目B又依赖于项目C时,项目A间接地依赖于项目C。这种关系使得A可以通过B来间接获取到C的类和资源。但是,并非所有的传递依赖都能被A直接使用,这取决...

    Spring-注入依赖

    1. **构造器注入**:通过构造函数传递依赖对象。这是最常见的一种注入方式,可以在创建对象时就明确其依赖关系。例如: ```java public class MyService { private final MyDependency dependency; public ...

    图论- 图的连通性- 传递闭包.rar

    图论是离散数学的一个重要分支,主要研究的是点与点之间通过边连接形成的图形结构。...在提供的"图论- 图的连通性- 传递闭包.pdf"文件中,你将能够找到更详尽的解释和实例,进一步提升你对这些概念的理解。

    java-maven-ojdbc14-10.2.0.4.0-jar包依赖

    2. 依赖冲突解决:如果项目依赖了不同版本的同一个库,Maven会根据依赖的传递性和版本范围规则来解决冲突。 3. 一致性:整个团队和项目都可以使用相同的构建过程,保证了环境的一致性。 4. 构建和部署的标准化:...

    行业分类-设备装置-传递多媒体数据的系统.zip

    在IT行业中,多媒体数据的传输系统是一个至关重要的领域,它涉及到多个技术和标准的融合,旨在高效、稳定地在各种设备之间传递音频、视频以及其他多媒体内容。"行业分类-设备装置-传递多媒体数据的系统"这一主题,...

    02-0什么是函数依赖1

    接下来,我们讨论函数依赖的几个重要类型:完全函数依赖、部分函数依赖和传递函数依赖。完全函数依赖是指X→Y,且没有任何X的真子集可以确定Y。部分函数依赖是指X→Y,但存在X的真子集X'可以确定Y。传递函数依赖是指...

    数据库3-3 函数依赖及其公理定理1

    函数依赖的公理和定理是推理函数依赖的基础,包括 Armstrong 定理集,其中包括自反性、增广性、传递性等。这些定理帮助我们推导出函数依赖集的其他依赖,并用于简化函数依赖集,找到其最小覆盖。最小覆盖是指保持原...

Global site tag (gtag.js) - Google Analytics