Spring导入冲突:具有相同名称上下文的多个jar

时间:2016-11-24 09:45:51

标签: java spring classpath

这不是一个非常常见的情况,但我有一个maven模块(实际上用于测试,不重要)有spring上下文,它应该从依赖项导入另一个上下文,但是有另一个具有相同上下文名称的依赖项。

test module
  test-context import beans.xml
under test jar
  has beans.xml
another dependency jar
  has beans.xml

<import resource="classpath:beans.xml /&GT;在类路径中加载第一个上下文并且它不是正确的:)

有没有办法在不改变上下文名称或位置的情况下解决冲突?即基本上我想从资源类路径解析中排除一个jar。

1 个答案:

答案 0 :(得分:0)

我会保留否定的答案,因为我认为除了移动/重命名文件之外别无他法,因为从Spring的角度来看,类路径中的两个jar都具有相同的优先级,所以第一个获胜。

另外,我不认为有一种方法可以从jar路径中解析jar,因为jar文件名可能因依赖版本而有所不同,例如它完全由maven管理,而不是由spring管理。

有一种野蛮的方式 - 通过一些maven插件从中删除beans.xml来重新打包依赖jar。