2016-11-24 5 views
0

매우 일반적인 상황은 아니지만 의존성에서 다른 컨텍스트를 가져와야하는 스프링 컨텍스트가있는 maven 모듈 (실제로는 테스트 용, 중요하지 않음)이 있지만 다른 종속성이 있습니다. 동일한 컨텍스트 이름으로 클래스 경로에스프링 가져 오기 충돌 : 같은 이름의 컨텍스트가있는 여러 개의 jar 파일

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

<import resource="classpath:beans.xml는 /> 부하 처음 문맥을 그것은 바로 하나 :

컨텍스트 이름이나 위치를 변경하지 않고 충돌을 해결하기 위해 어떤 방법이 있나요 아니다? 나는. 기본적으로 나는 자원 클래스 경로 해석에서 하나의 jar를 제외시키고 자한다.

답변

0

스프링 관점에서 classpath의 양쪽 항아리가 같은 우선 순위를 가지므로 첫 번째 것이 이기기 때문에 파일을 이동하거나 이름을 바꾸는 것 외에는 다른 방법이 없다고 생각하므로 부정적 답변을 예약합니다.

또한 클래스 패스에서 jar를 제외하는 방법이 없다고 생각합니다. jar 파일 이름은 의존성 버전에 따라 다를 수 있으며 스프링으로가 아니라 maven에서 완전히 관리합니다.

거기에서 하나의 잔인한 방법이 있습니다 - 거기에서 beans.xml을 제거하는 일부 메이븐 플러그인에 의해 - 의존성 항아리를 재 포장하십시오.