Maven直接和传递依赖性解析

时间:2013-08-10 09:00:20

标签: maven

Artifact_A在同一范围内同时具有Artifact_B的直接依赖性和传递依赖性。

direct dependency总是先于transitive dependency,还是以higher version为准?

Maven Dependencies Resolution上是否有比Maven reference manual - Project Dependencies章更好的插图参考?

2 个答案:

答案 0 :(得分:3)

依赖性解析机制可能很复杂。如果有托管版本(dependencyManagement),则优先。一般来说,Maven将使用满足所有要求的最高请求版本(例如,某些servlet包可能需要[2.4,3.0)而另一个包需要2.5,因此Maven将使用2.5)。如果Maven找不到这样的版本(在上面的示例中,如果第二个包需要[3.0,4.0)),那么它将产生错误。

如果您遇到特定问题,请随时发布包含所有详细信息的问题。

答案 1 :(得分:3)

  

直接依赖是否总是在传递依赖之前,或者更高版本优先?

     

是否有任何参考资料可以更好地说明Maven Dependencies Resolution而不是[...]

要回答这两个问题,我建议您阅读doc on dependency management。请参阅解释“依赖性调解”的部分。

此外,thisthis文章在此问题上更为明确,并且更加直观,易于理解。我建议你检查一下。