Maven高级,依赖传递和解决冲突,版本锁定,提取统一版本号

摘要:
在maven的pom文件中添加第三方库坐标,即引入第三方依赖关系。此时,C和D数据库中有一条版本冲突解决冲突红线,这表明依赖关系已优化(无效)。红色实线表示冲突。

一、依赖传递冲突解决

什么是依赖?

在maven的pom文件中添加三方库坐标,即引入三方依赖。

依赖传递

项目依赖了A,A依赖了B,项目自动依赖了B

注意:父项目中的依赖有 <scope> 标签属性为   test  provided  则不会依赖传递

依赖冲突

项目依赖了A和B,A 依赖了C-1.1、D-1.1, B依赖了C-1.2、D-1.2,E-1.2。此时C、D库存在版本冲突

解决冲突

红线代表依赖被优化(失效)

Maven高级,依赖传递和解决冲突,版本锁定,提取统一版本号第1张

 显示红色实线的代表冲突。红色虚线,告诉你同一个jar都在哪里被多次引用了。

二、maven自带调优原则

根据三方库导入顺序,自动优化jar包

Maven高级,依赖传递和解决冲突,版本锁定,提取统一版本号第2张

自动优化原则有两条

第一声明者优先: 跟导入依赖的顺序有关,先导入的优先级更高

第二路径近者优先,路径指的是依赖关系图中的位置

三、排除依赖

Maven高级,依赖传递和解决冲突,版本锁定,提取统一版本号第3张

 此时有重复依赖,(重复不一定冲突,版本不同会冲突

我们想排除jdbc包下的core依赖使用代码

<!--spring的jdbc包-->
<dependency>
     <groupId>org.springframework</groupId>
     <artifactId>spring-jdbc</artifactId>
     <version>5.1.12.RELEASE</version>
     <exclusions>
         <exclusion>
             <artifactId>spring-core</artifactId>
             <groupId>org.springframework</groupId>
         </exclusion>
     </exclusions>
</dependency>

Maven高级,依赖传递和解决冲突,版本锁定,提取统一版本号第4张

四、锁定版本

如果多个库,交叉导入了同一个库,意思就是多个相同依赖的版本不同,此时我们可以通过dependencyManagement锁定库的版本。

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>5.2.5.RELEASE</version>
            </dependency>
        </dependencies>
</dependencyManagement>
<dependencies>
        <!--spring的jdbc包  此时导入被锁定的包,不需要写版本号,若写了就以就近原则下载  -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
        </dependency>
 </dependencies>

五、提取版本号

选中版本,ctrl+alt+v,提取版本号,自动放入properties中

Maven高级,依赖传递和解决冲突,版本锁定,提取统一版本号第5张

Maven高级,依赖传递和解决冲突,版本锁定,提取统一版本号第6张

免责声明:文章转载自《Maven高级,依赖传递和解决冲突,版本锁定,提取统一版本号》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JAVA编程---------11、有1,2,3,4四个数字,能组成多少个互不相同且一个数字中无重复数字的三位数?并把他们都输出vue中如何生成组件的文档说明下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

传奇衣服、翅膀、武器、怪物、NPC等外观代码计算方法与公式

例如:MON50.WIL,要添加的怪物图像是361-720,因此怪物在文件中的位置是第二位,因为怪物位置代码从0开始,即第一个怪物是0,第二个怪物是1,第三个怪物是2……因此,当前文件中怪物的位置代码是1。因此,怪物的APPR值是{*10}+1=491。...

Xmind常用快捷键

快捷鍵(WINDOWS)快捷鍵(MAC)描述Ctrl+NCommand+N建立新工作簿Ctrl+OCommand+O开启工作簿Ctrl+SCommand+S储存目前工作簿Ctrl+Shift+SCommand+Shift+S储存全部工作簿Ctrl+WCommand+W关闭目前工作簿Ctrl+Shift+WCommand+Shift+W关闭全部工作簿Ctrl+...

如何给LINUX红帽子版本配置IP(转)

如果需要绑定另一个IP地址,只需在文件名中添加一个,并在文件中的DEVICE中添加eth0:x。LINUX可以支持多达255个IP别名,多个网卡绑定到一个IP地址,并且可以使用多个网卡创建具有相同IP地址的虚拟网卡。事实上,这种技术已经存在于Sun和Cisco中,它们分别被称为中继和以太网信道技术。在Linux中,这种技术被称为绑定。...

Linux(debian7)操作基础(四)之CPU频率调整 Linux系统CPU频率调整工具使用

在Linux中,内核的开发人员定义了一组框架模型,以实现动态调整CPU频率的目的,这就是CPUFreq系统。交互式:交互式模式,直接连接到最高频率,然后CPU负载缓慢降低,导致相对较高的功耗。Interactive根据计划的CPU数量来调整频率,以节省电力。InteractiveX根据CPU负载调整CPU频率,而不会过度降低频率。用户空间:用户定义的模式。该...

Windows Server 2019 Active Directory (AD域)时间不同步的解决方法

2.启用NTPServerHKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeTimeProviderNtpServer,将键Enabled的值修改为十进制的1。快速将所有注册表导入WindowsRegistryEditorVersion5.00[HHKEY_LOCAL_MACHINESOFTWAR...

PostgreSQL 语法

Psql(11.12)输入“help”以获取帮助信息。postgres=#help输入命令行工具,…])][*|表达式[[AS]输出_名称][,...