Spring2.x和Spring3.x maven依赖

时间:2014-12-08 08:01:34

标签: spring maven conflict

我有一个关于maven传递依赖的问题。

我有一个项目A和依赖项目b和spring 2.x但项目b依赖项spring 3.x

你知道spring框架分裂了几个模块。

所以问题如下。

如果我在项目A中独占spring3.x依赖项,我担心项目可以运行,因为项目b需要spring3.x api和项目A依赖B

如果我删除项目A中的spring2.x,我担心项目A也无法运行,可能会在spring3.x中删除一些旧的api

任何人都有这种情况的解决方案

1 个答案:

答案 0 :(得分:0)

这不是maven或spring问题 - 它与软件设计更相关。您需要决定使用哪个弹簧版本。通常升级spring并不是最大的混乱,有时你需要在移动东西时更改依赖关系集 - 但Google对此非常有帮助 - 或者findjar.com。

我假设A和B都在同一个进程(或类加载器)中运行?你没有单独部署它们?所以你需要决定使用哪个弹簧版本。如果您无法更改项目B中的依赖项,请使用其spring版本。如果可以:采取较新的一个并在项目B中升级弹簧。

Maven遗憾地不包括魔法罐机制。如果你需要OSGi可能有用的东西的同一个罐子的不同版本 - 但这是一个looooong镜头。而且也很复杂。通常没有必要。 Maven(正如您所注意到的)可以帮助您管理依赖项。您可以选择使用哪一个。