2014-12-08 37 views
0

我有一个关于maven传递依赖的问题。Spring2.x和Spring3.x maven dependency

我有一个项目和依赖项目B和春天2.x的,但你知道Spring框架splited几个模块的项目B依赖春天3.X

所以问题如下。

如果我独家项目A中的spring3.x依赖恐怕项目能够运行,因为项目B需要spring3.x API和项目依赖关系乙

如果我删除项目的spring2.x A,只怕项目A不能运行过,也许有些旧的API在spring3.x

有人被删除有一些解决方案,此方案

回答

0

这不是行家或弹簧问题 - 其与您的软件设计更相关。你需要决定你要使用哪个春天的版本。通常升级spring并不是最大的混乱,有时你需要改变一系列依赖关系,因为它们会移动东西 - 但Google对此很有帮助 - 或者findjar.com。

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

Maven可悲地不包括魔法瓶机制。如果你需要围绕OSGi这样的东西提供不同版本的相同的jar版本,那可能会有所帮助 - 但那是一个懒散的镜头。还有一个复杂的问题。通常没有必要。 Maven(你已经注意到了)可以帮助你管理依赖关系。你可以选择使用哪一种。

+0

好的,谢谢,我计划升级项目A的春季版本,并试图说服其他人进入团队。我还有另一个问题,如果你知道答案,你可以给我一些建议,非常感谢你http://stackoverflow.com/questions/27313592/get-the-all-of-loaded-classes-when-application-runtime – wenjunwang 2014-12-08 08:40:26