我有一个项目,我使用Spring 4.1.2.RELEASE,它使用Spring 4.1.5,Spring HATEOAS 0.10.0.RELEASE使用Spring 4.0.9。这导致一些依赖性问题,如臭名昭着的java.lang.ClassNotFoundException: org.springframework.beans.factory.SmartInitializingSingleton
。
我挖掘了spring-hateoas
的POM,发现定义了不同的配置文件,其中一个是spring41
,这取决于Spring 4.1.5。是否可以在<dependency>
部分中选择此配置文件,还是必须排除Spring依赖项?
答案 0 :(得分:2)
自动为构建选择配置文件并不容易。您可以在个人settings.xml
中默认启用它,但会破坏没有相同文件的所有人的构建。
您无法在项目的POM中启用配置文件。
使用Maven 3.3,您可以将个人资料添加到${maven.projectBasedir}/.mvn/maven.config
。由于此文件是项目的一部分,因此很容易共享。您可以使用Maven Enforcer plugin确保每个人都使用Maven版本并实际使用该文件。
如果你不能使用3.3,那么最好的办法是排除依赖关系。如果您有父POM,那么您可以使用dependencyManagement
元素为reactor构建中的所有POM执行此操作。