我经常发现自己处于顶级模块中需要依赖的情况下,因为它所依赖的模块之一具有相同的依赖性。
例如:
my-module
+- spring-core
\- commons-logging
因此,假设我对传递依赖的版本感到满意,那么在commmons-logging
上的依赖性是否应重新声明如下:
my-module
+- spring-core
| \- commons-logging
\- commons logging
或者我应该接受是否可以传递获得依赖?
答案 0 :(得分:3)
IMO最好明确声明它,以便您可以控制您使用的确切版本。否则,每当更新另一个依赖项或引入一个看似无关的新依赖项时,所使用的实际版本都可以静默更改,这依赖于另一个库的较新版本。
答案 1 :(得分:1)
我通常会让他们过渡。
当您想要覆盖特定版本时,它可能有意义。例如,如果spring-core需要一个版本为1.25的commons-logging并且你需要(由于各种原因)1.26并且它们是兼容的,你应该忽略spring-core中的commons-logging依赖项并在你的pom中声明你的版本。
当两个人之间发生冲突时也一样。