maven jar包版本问题总结

 

                                       maven jar包版本问题总结

 

前言

         相信很多朋友二次开发或平时都会遇到jar包版本问题,同一个项目中同时依赖了高低版本的同一个jar包,然后报各种奇葩问题。

 

一  Maven项目父子模块JAR包继承与不继承处理简单处理

 

   在父级项目中将部分子模块中不需要继承的jar包放入中,在需要引入的子模块中增依赖继承如下:

 父项目:

子模块中使用:

   

不需要继承的子模块不用做任何处理

也可以在子模块中直接排除JAR包依赖

 

二 maven依赖复杂处理(Maven 依赖范围、依赖传递、排除依赖)

    Scope 作用范围 

     1. compile 默认的范围,编译测试运行都有效。
     2. provided 编译和测试时有效,最后是在运行的时候不会被加入。官方举了一个例子。比如在JavaEE web项目中我们需要使 

    用servlet的API,但是呢Tomcat中已经提供这个jar,我们在编译和测试的时候需要使用这个api,但是部署到tomcat的时候,如      果还加入servlet构建就会产生冲突,这个时候就可以使用provided。
    3. runtime 在测试和运行时有效。
   4. test 在测试时有效。
   5. system 与本机系统相关联,可移植性差。编译和测试时有效。
   6. import 导入,它只在使用dependencyManagement中,表示从其他pom中导入dependecy的配置。

import 就是把A中的构建导入到B中

 

依赖传递

先建立第一个项目project01
建立第二个项目project02
建立第二个项目project03

我们把project01打包安装到本地仓库中。
clean install
在project02中依赖project01

把project02 打包安装在本地仓库
在project03中依赖project02

然后编译项目project03 会发现project01也会在project03中

 

这就是传递依赖

排除依赖

上面演示了传递依赖,但是如果我们只需要依赖project02 并不想依赖进来project01怎么办呢?这个时候就要是用exclusions 排除依赖列表

project03排除依赖project01pom.xml配置如下

这样在project03中就不会依赖进来project01

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值