我需要创建一个依赖于Spring 3的库。但是这个库将在一些使用Spring 3的项目中使用,同时在一些使用Spring 4的新项目中使用。我应该如何在我的库中配置Spring依赖项以及项目中使用它们的依赖项?
我不想为Spring 3和Spring 4提供两个独立版本的lib。
答案 0 :(得分:2)
Maven有一个nearest definition的概念,这意味着您可以在POM中声明首选的依赖版本,它将覆盖您的其他依赖项传递的任何不同版本。
所以你的新项目应该在他们的POM中声明一个Spring 4依赖项。如果groupId和artifactId在Spring 3和4(我believe they are)之间是相同的,那么新项目在其类路径中只有Spring 4类。
那么你必须希望Spring 4向后兼容Spring 3,否则你的库可能会遇到运行时问题。也许看Spring 4.0.0 backward compatibility。
答案 1 :(得分:0)
一个选项是在父pom.xml上定义spring.version
之类的属性。
然后您的图书馆使用父母的图书馆,您可以根据自己的需要设置图书馆。
同时参加Introduction to the Dependency Mechanism。依赖管理也可能是一个不错的选择。