Maven可以为战争中的不同模块指定不同的依赖关系吗?

时间:2014-09-05 06:57:40

标签: java hibernate maven

如果你不能通过问题标题理解我的问题,请道歉,但让我详细说明:

我有一个项目A ,我使用maven创建一个war文件。项目A依赖于另一个项目B 。项目B是一个旧项目,它严格依赖于 hibernate 3 。项目A是我目前正在开发的项目,我希望它的代码使用 Hibernate 4 。我将Hibernate 4依赖项添加到项目A的maven POM文件中,因此在生成的WAR文件中,我同时拥有hibernate 3和Hibernate 4 jar。

但是当我启动项目A时,hibernate 3代码总是由项目A中的代码自动使用。

我追求的结果是项目A中的代码自动使用hibernate 4 jar,而hibernate 3 jar仍然包含在项目B的代码中使用。

我可以使用 Maven 来实现这一目标吗?或者用什么工具来做这件事?

欢迎任何建议

1 个答案:

答案 0 :(得分:1)

如果你将A中的B与它的依赖关系捆绑在一起,在运行时它将从头到尾扫描类路径,并且它将首先拾取第一个版本的类,所以如果你在classpath中提前3,那么hibernate 3会被拾取,忽略4,

简要更新代码以使用最新版本