2017-12-18 6 views
0

I디버그 전쟁 파일 내의 특정 jar 파일을 포함

A (testlib removed) 
/\ 
V V 
B C 
    \/
    V 
    D (packs to war) 

기본적으로 다음과 같은 프로젝트 구조는 프로젝트 A는 프로젝트 D의 차례 종속성에 B와 C의 종속성입니다이

처음에 나는 프로젝트 A에 testlib라고 말했습니다. 그러나 프로젝트 A에서이 라이브러리를 제거했습니다.

나는 다음과 같은 한 : 나는 d.war 아카이브를 열 때

1. mvn clean install on project A (`testlib` remove) 
2. mvn install on project B 
3. mvn install on project C 
4. mvn install on Project D, which creates a `war` say `d.war`. 

, 내가 testlib 내가 모든 프로젝트에 MVN dependency:tree을 시도 WEB-INF/lib

내부에 존재하는 것을 볼 수 있습니다, 내가 찾을 수 없습니다 어떤 프로젝트에서든지 testlib. 는 내가 war 파일에 포함 된 testlib의 원인을 이해하려고하거나 디버깅하는 더 좋은 방법 .. 프로젝트 A의 치어 내부 지역 .m2 저장소에

+0

'D' 프로젝트에서'dependency : tree' 명령의 결과를 추가 할 수 있습니까? – zaerymoghaddam

+0

죄송합니다. 프로젝트 및 종속성은 내부 프로젝트의 일부이므로 출력을 추가 할 수 없습니다. – user3288346

+0

나는 당신이 "기본적으로 프로젝트 A는 프로젝트 B의 종속성이고 C는 프로젝트 D의 의존성이 아니라"- 의존성이라는 것을 의미한다고 가정합니다. – OhadR

답변

0

확인이있는 경우 testlib는 아직 언급되어 있는지 여부 . 프로젝트 A의 폴더를 .m2에서 제거하고 A 및 D를 새로 설치하려고 시도하십시오.

1

A의 버전은 무엇입니까?

SNAPSHOT이 아니거나 ("SNAPSHOT"으로 끝나지 않는 "RELEASE"인 경우), Maven은 다른 프로젝트 B 및 C를 새 A로 업데이트하지 않습니다.

+0

A는 스냅 샷입니다. 사실, A의 새 버전이 B와 C에 적용되고 있음을 알 수 있습니다. 단지 jar에 패키징 할 때'testlib' 라이브러리가 전쟁에 포함됩니다. – user3288346

+0

그래서 다른 JAR은 "testlib"에 의존하고 있을까요? – OhadR

+0

'testlib'에 대한 jar 파일이'target-server-side' 폴더에 있는지 확인한 후, 그 파일을 삭제하고 이전에 언급 한 단계를 다시 수행했습니다. 작동하는 것 같습니다. 하지만 무슨 일이 있었는지 이해하도록 도와 줄 수 있니? – user3288346