release some Mensproblemss能表示解决一些问题吗

使用maven最烦人的可能就是类包之间嘚版本冲突引发的问题了类包冲突的一个很大的原因即产类包之间的间接依赖引起的。每个显式声明的类包都会依赖于一些其它的隐式類包这些隐式的类包会被maven间接引入进来,因而可能造成一个我们不想要的类包的载入严重的甚至会引起类包之间的冲突。

要解决这个問题首先就是要查看pom.xml显式和隐式的依赖类包,然后通过这个类包树找出我们不想要的依赖类包手工将其排除在外就可以了。

下面通過一个例子来说明:

我的项目使用testng进行测试,使用了untilis由于unitils的类包会隐式依赖于junit,这是我不想看到的下面的目的就是找出junit会谁隐式载入叻,然后exculte掉它

通过菜单的exclude即解决这个间接依赖。

通过这个依赖树我们还可以看到Junit还通过“unitils-spring”的依赖间接载入了,如下所示:

下面是處理完成后的pom.xml关键片断:


  

这样,被间接隐式引入的junit就被我们exclude在外了

有时通过idea的依赖分析工具产生的树不够全,这时就需要使用mvn dependency:tree来查看依賴树了

以下是使用这个工具产生的依赖树:

我原来一个使用idea分析不出的隐式依赖就是通用mvn dependency:tree找到的。

我要回帖

更多关于 problems 的文章

 

随机推荐