其他分享
首页 > 其他分享> > 学习笔记:maven依赖配置与依赖传递

学习笔记:maven依赖配置与依赖传递

作者:互联网

我们为什么要使用依赖?
在dependencies中配置依赖,有了依赖我们的项目就能使用别人的资源而不用拷贝jar包

<!--配置junit依赖-->
<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
</dependencies>
    

1. 依赖的四种类型

1.依赖传递: 每个项目中的pom文件里都有其坐标,直接复制粘贴到dependencies里面就可以使用别人的依赖了。
分为直接依赖;间接依赖

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
	<dependency>
		<groupId>com.itheima</groupId>
    	<artifactId>java02</artifactId>
    	<version>1.0-SNAPSHOT</version>
	<dependency>
</dependencies>

2.依赖传递冲突问题:
路径优先:版本的不同,层级越浅优先级越高
声明优先:配置顺序靠前的优先级高
特殊优先:同级配置的相同资源,后配置的优先级高

3.可选依赖:
optional ture,即可让他人看不到此依赖。

<optional>true</optional>

4.排除依赖:
主动不用这个依赖

<exclusions>
	<exclusion>
		<groupId>com.itheima</groupId>
    	<artifactId>java02</artifactId>
    	<version>1.0-SNAPSHOT</version>//不用写version
	</exclusion>
</exclusions>

2. 依赖管理

1. 依赖范围:

		<scope>xxx</scope>//不同的xxx对应不同的作用范围
scope主代码测试代码打包范例
compile(默认)YYYlog4j
testYjunit
providedYYservlet-api
runtimeYjdbc

传递性:看不懂没关系。
带有依赖范围进行传递依赖时,作用范围将受到影响。横轴是直接传递,纵轴是间接传递。

compiletestprovidedruntime
compilecompiletestprovidedruntime
test
provided
runtimeruntimetestprovidedjdbc

标签:传递,依赖,优先级,配置,笔记,maven,4.12,junit
来源: https://blog.csdn.net/weixin_44917369/article/details/121086144