Maven:如何在特定的构建配置文件中包含依赖项?

时间:2015-03-26 15:05:05

标签: spring maven spring-boot

我有一个项目,我使用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依赖项?

1 个答案:

答案 0 :(得分:2)

自动为构建选择配置文件并不容易。您可以在个人settings.xml中默认启用它,但会破坏没有相同文件的所有人的构建。

您无法在项目的POM中启用配置文件。

使用Maven 3.3,您可以将个人资料添加到${maven.projectBasedir}/.mvn/maven.config。由于此文件是项目的一部分,因此很容易共享。您可以使用Maven Enforcer plugin确保每个人都使用Maven版本并实际使用该文件。

如果你不能使用3.3,那么最好的办法是排除依赖关系。如果您有父POM,那么您可以使用dependencyManagement元素为reactor构建中的所有POM执行此操作。