ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

maven依赖的详解说明

2022-04-30 18:32:00  阅读:154  来源: 互联网

标签:依赖 -- spring jar maven 详解 org


转自:

http://www.java265.com/Maven/202204/3219.html

下文笔者讲述maven依赖范围的简介说明

maven依赖范围简介

在maven依赖时,其坐标后面跟上scope里面的值
我们称之为依赖范围:
    它用于控制依赖,编译,测试,运行
 依赖范围scope 用来控制依赖和编译,测试,运行的classpath的关系。具体的依赖范围有如下6种:
依赖范围 备注说明
compile 默认编译依赖范围,对于编译,测试,运行三种classpath都有效
test 测试依赖范围,只对于测试classpath有效
provided 已提供依赖范围,对于编译,测试的classpath都有效,但对于运行无效。因为由容器已经提供,如servlet-api
runtime 运行时提供,如:jdbc驱动
system 系统范围,自定义构件,指定systemPath;跟provided 相似,但是在系统中要以外部JAR包的形式提供,maven不会在repository查找它
import 只使用在<dependencyManagement>中,指从其它的pom中导入dependency的配置

传递性依赖

如:
  C依赖B
  B依赖A
则称C对B是第一直接依赖,B对A是第二直接依赖,C对A是传递依赖 

可选依赖

在依赖节点dependency中
  <optional>属性
  可控制当前的依赖是否向下传递
 默认值为false,表示向下传递 
例:A项目依赖于log4j,B项目依赖于A项目 如果在A中对log4j依赖的optional配置成false时 B项目中自动传递依赖于log4j。否则反之。
项目A配置slf4j的依赖并设置optional为true
 <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.6.4</version>
            <!-- 配置为true时不向下传递此依赖,默认为false -->
            <optional>true</optional>
 </dependency>

配置项目B依赖于项目A,检查项目B的依赖包
<!-- 依赖于A -->
<dependency>
        <groupId>com.yiidian</groupId>
        <artifactId>A</artifactId>
         <version>0.0.1-SNAPSHOT</version>
</dependency>
此时可以看出B项目没有依赖slf4j-log4j12

依赖冲突

当一个jar在直接或间接依赖同一坐标的不同版本的资源时,此时以就近原则依赖指定jar包 如:
 A-->B-->C-->D-->X(1.9)
 A-->D-->X(2.0)
1.根据就近原则,此时A会依赖X的2.0版本
2.当依赖中存在两个相同的坐标时,则以顺序下方的版本为准
例:
当一个pom.xml引入两个相同的jar时,此时会 引入3.5.8的mybatis
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.9</version>
</dependency>

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.8</version>
</dependency>

排除依赖

在pom中的依赖节点中
 当引入的依赖包含了很多其它的传递依赖
 同此时项目中依赖的jar包不符,此时我们需排除这些依赖,该如何操作呢?
 下文笔者将一一道来,如下所示:
 使用 <exclusions> 然后再添加 <exclusion>可排除指定的jar
 
例:
使用exclusion排除spring-plugin中的spring-core依赖
<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-spring-plugin</artifactId>
			<version>3.2.23.1</version>
			<exclusions>
				<!-- 排除spring-core的传递依赖 -->
				<exclusion>
					<groupId>org.springframework</groupId>
					<artifactId>spring-core</artifactId>
				</exclusion>
			</exclusions>
</dependency>

<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
			<version>3.2.0.RELEASE</version>
</dependency>

标签:依赖,--,spring,jar,maven,详解,org
来源: https://www.cnblogs.com/java265/p/16209703.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有