java - Maven 库在更多具有不同依赖项的项目中使用

标签 java spring maven

我需要创建一个依赖于 Spring 3 的库。但是这个库将在一些使用 Spring 3 的项目中使用,同时在一些使用 Spring 4 的新项目中使用。我应该如何在我的库中配置 Spring 依赖项以及项目中使用它们的依赖项?

我不想为 Spring 3 和 Spring 4 使用两个单独版本的库。

最佳答案

Maven 有一个概念 nearest definition ,这意味着您可以在 POM 中声明依赖项的首选版本,它将覆盖其他依赖项传递使用的任何不同版本。

因此,您的新项目应该在其 POM 中声明 Spring 4 依赖项。假设 Spring 3 和 4 之间的 groupId 和 artifactId 相同(我 believe they are ),新项目的类路径中将只包含 Spring 4 类。

那么你必须希望 Spring 4 向后兼容 Spring 3,否则你的库可能会遇到运行时问题。也许看到Spring 4.0.0 backward compatibility .

关于java - Maven 库在更多具有不同依赖项的项目中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23682694/

相关文章:

spring - 如何更改 Grails 项目中的 Spring 版本?

android - Spring Android 连接被拒绝 ECONNREFUSED

java - Spring 启动: Property file with place holder

java - HTTP 状态 404 – 未找到 Apache Tomcat/8.5.16

java - 为部署到 heroku tomcat 的 Java Web WAR 找不到添加依赖项的类

java - "Application not responding"并且用户选择 "close"应用程序而不是 "wait"

java - @@JsonProperty 注释不适用于 java 属性

javax.net.ssl.SSLHandshakeException : Remote host closed connection during handshake during web service communicaiton

Java反序列化JSON,其中变量名为 "class"

java - tomcat应用程序未启动的maven项目错误