2014-04-28 2 views
0

다음 종속성이있는 전쟁 응용 프로그램을 고려하십시오.Maven 종속성 관리 : Transitive Vs Direct Dependency

War A --> Jar A --> jar B 

전쟁 A는 Jar A의 종속성 만 추가합니다. jar B를 전이 의존성으로 가져옵니다. 하지만 B에서 뭔가 바뀌 었다고 가정 해 봅시다. 그러면 B의 새 버전으로 A를 작성해야합니다.이 올바른 일이 있습니까? B가 변경 될 때마다 A의 POM은 B의 최신 변경 사항을 선택해야합니다. 전쟁 A가 A와 B의 직접 종속성을 지정해야합니까?

API를 직접 사용하는 항아리의 직접적인 종속성을 이상적으로 선언해야하는 것처럼 보이는 규칙이 있습니까? 위의 경우

, 내 이해를 도와주세요 전쟁 A.

에서 호출지고 항아리 B에서 자바 클래스가있다.

+2

직접적인 종속성을 선언 할 때 문제가되는 것은 곧 POM이 종속성으로 가득 차게된다는 것입니다. 일반적으로 모든 버전은 이전 버전과 호환되도록 변경됩니다. 따라서 B에서의 업데이트가 반드시 A를 업데이트해야 함을 의미하지는 않습니다. – adarshr

답변

0

일반적으로 메이븐의 컨벤션을 유지하고 전이 의존성을 해결하는 것이 가장 좋습니다. 따라서 의존성 지옥으로 소용돌이 치지 마십시오!
변경 사항을 테스트하려는 경우 테스트 목적으로 직접 종속성을 추가 할 수 있습니다.

간단하게 유지하십시오. maven이이를 관리하도록 허용하십시오.

이 정보가 도움이되기를 바랍니다.