maven 检查jar依赖冲突和版本冲突 以及解决

问题描述:


          项目中用到dubbo实现分布式远程调用服务,整合dubbo的时候,遇到一个Spring的错误,NoSuchMethodError的问题。由于导入了不同版本的jar包造成的。就是说,当我发布了一版2.0jar的时候里面有个我新写的方法 adduser,但是1.0里面没有,pom没有及时更新jar,这样就会有NoSuchMethodError。我们怎么知道是否是jar包冲突的问题呢,可以使用maven命令来查看。


问题解决:


mvn dependency:tree 

         可以看到dubbo包依赖了哪些包,里面引用了Spring的包,我们项目用的是ssm框架,所以会引用spring4.2.4的包,这样spring版本就出现了冲突。


去除默认引入的spring即可。


	<!-- dubbo相关 -->
			<dependency>
				<groupId>com.alibaba</groupId>
				<artifactId>dubbo</artifactId>
				<version>${dubbo.version}</version>
				<exclusions>
					<exclusion>
						<groupId>org.springframework</groupId>
						<artifactId>spring</artifactId>
					</exclusion>
				</exclusions>
			</dependency>


         在项目发布的时候,一般都需要进行依赖冲突检查或者重复类的检查,上面tree命令只能检查jar依赖的冲突,不能看到所有的类的依赖关系,还有下面这个命令 enforcer:enforce 是用来检查重复类的。


mvn -U clean package -Dmaven.test.skip=true enforcer:enforce -DcheckDeployRelease_skip=true -Denforcer.skip=false



总结:

      

            maven不仅是构建工具,它还是依赖管理工具和项目管理工具,提供了中央仓库,能够帮我们自动下载构件。有很多命令需要我们去学习。在实践中多多总结经验。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值