2013-08-06 1 views
2

는 존재 프로젝트 종속성 트리가 있다고 가정 :Maven - 종속성 트리에서 jar를 직접 사용해야합니까?

 MyProject:jar:0.1.0 
    +- DependencyJar:jar:1.0.3:compile 
    | +- com.google.guava:guava:jar:14.0:compile 

그리고 나는 지금부터 guava을 사용하고 싶습니다.

내 질문은 내 pom.xml에 DependencyJar 또는 DependencyJar and guava을 모두 정의해야합니까?

가장 좋은 방법은 무엇입니까? 감사합니다. .

답변

2

프로젝트에서 직접 사용하는 모든 종속성을 pom.xml에 선언하는 것이 가장 좋습니다.

은 나중에 종속성에서 guava을 (를) 제거 할 수 있으므로 전이적인 행동에 의존해서는 안됩니다. 따라서 DependencyJar을 업그레이드하면 MyProject이 컴파일되지 않을 수 있습니다.

이 모범 사례는 pom.xml에 선언되지 않은 종속성을 알 수있는 maven dependency plugin's analyze-mojo 동작과 일치합니다.

+0

감사의 관점에서 당신에게 더 명확한 그림을 줄 것이다, Maven Dependency Scopes을 읽고 제안하고 싶습니다. 플러그인'analyze-mojo'는 매우 유용합니다. – andyf

1

컴파일해야하는 모든 코드에 직접 종속성을 추가하는 것이 좋습니다.

현재 종속성의 이후 버전이 갑자기 추리성 종속성을 사용하지 않으면 문제를 찾아 수정하는 데 어려움을 겪을 수 있습니다.

직접적인 종속성을 문서화하는 데 유용합니다.

Maven Dependency Plugin은 분석에 도움이됩니다.

1

부모로부터 천 성적으로 오는 것이라면 반드시 필요하지는 않으며 항상 그곳에있게 될 것이라 확신합니다 (). 프로젝트가 의존하는 pom 파일에 직접 모든 종속성을 언급하는 것이 좋습니다.. 의존성은 프로젝트 구조를 통해 흐름을 이해하는 부가 기능으로

, 나는 귀하의 질문에