【Maven】依赖管理

网友投稿 295 2022-08-25

【Maven】依赖管理

文章目录

​​依赖管理​​

​​一、依赖配置​​​​二、依赖传递​​​​三、可选依赖​​​​四、排除依赖​​​​五、依赖范围​​

依赖管理

一、依赖配置

依赖指当前项目运行所需要的jar,一个项目可以设置多个依赖格式:

​​​​

二、依赖传递

依赖具有传递性

直接依赖:在当前项目中通过依赖配置建立的依赖关系间接依赖:即资源的资源,如果当前项目的资源依赖其他的资源,那么也就是当前的项目简介依赖其他资源

举个例子,首先创建三个Maven项目:

项目中依次导入log4j的1.2.12、1.2.13、1.2.14版本

假设当前项目2中需要用到项目3,也就是项目2用到了项目3的资源,那么此时该怎么办呢?

很简单,我们只需要将项目3的id信息加入到项目2的依赖中,导入即可(如上图所示),导入之后项目2中的依赖项中就可以看到项目3的1.2.14版本log4j依赖,假设我们在项目3中添加junit的依赖,那么在项目2的依赖中也会自动添加。

依赖传递中的冲突问题

​​​​

三、可选依赖

可选依赖指对外隐藏当前所依赖的资源 — 不透明

junit junit 4.12 true

当我们在项目3的junit依赖中配置optional参数时,可以发现在项目2的依赖传递中就被隐藏掉了。

​​​​

四、排除依赖

排除依赖指主动断开依赖的资源,被排除的资源无需指定版本 — 不需要

org.example Java_MavenP3 1.0-SNAPSHOT org.hamcrest hamcrest-core

在项目2中传递项目3依赖的时候,添加排除依赖log4j,可以看到右侧项目2中项目3中的log4j依赖自动没了。

​​​​

五、依赖范围

依赖的jar默认情况可以在任何地方使用,可以通过scope标签设定其作用范围

作用范围:

主程序范围有效(main文件夹范围内)测试程序范围有效(test文件夹范围内)是否参与打包(package指令范围内)

以test为例,我们在依赖中导入mybatis的依赖,并且添加依赖范围为test。同时,在main和test文件下创建java文件,同时引用SqlSession对象,可以明显发现,main中的程序中不能都导包(import报灰色),test中的程序中可以导入。

依赖范围的传递性:

带有依赖范围的资源在进行传递时,作用范围将受到影响

​​​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:新职业互联网营销师,会带来一波培训热吗?(互联网营销师的好处)
下一篇:【Java】异常(Exception)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~