微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

学习笔记: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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐