2

假设已有的项目依赖树为:

     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

最佳做法是什么?谢谢。

4

3 回答 3

2

最佳实践是在您pom.xml的项目直接使用的所有依赖项中声明。

您不应该依赖传递行为,因为以后可以选择从其依赖DependencyJar项中删除。guava因此,升级DependencyJar可能导致MyProject无法编译。

这个最佳实践与maven 依赖插件的 analyze-mojo行为一致,它可以告诉您使用了未在pom.xml.

于 2013-08-06T09:16:41.277 回答
1

我强烈建议将直接依赖项添加到您需要编译的所有代码中。

如果您当前依赖项的未来版本突然不再使用传递依赖项,您可能很难找到问题并修复它。

了解您的直接依赖关系对于文档目的也很有用。

Maven 依赖插件可以帮助您进行分析。

于 2013-08-06T09:17:10.390 回答
1

如果它是从其父代传递过来的,并且您确信它会一直存在,那么它不是必需的,但是强烈建议直接在您的项目所依赖的 pom 文件中提及所有依赖项

作为了解依赖项如何在您的项目结构中流动的插件,我建议您阅读Maven Dependency Scopes,这将使您更清楚地了解您的问题

于 2013-08-06T09:17:24.080 回答