如何通过Maven导入多个Spring应用程序,其中每个依赖项都位于其自己的类路径上(以避免依赖项冲突)?

时间:2018-11-23 04:07:38

标签: java spring maven spring-boot

我计划通过mavendependecy将多个Spring Boot应用程序引入单个模块,以便出于集成测试目的而在此处启动它们。我如何通过maven拥有这些Spring Boot应用程序,以便它们具有自己的类路径,并避免依赖冲突? (每个Spring Boot应用程序可能使用不同的Spring版本)

2 个答案:

答案 0 :(得分:1)

在构建期间,为每个bootsrap应用程序构建快照Docker映像(使用maven docker插件)。 在集成测试之前使用Docker Compose运行它们,并在测试完成后将其关闭(docker或只是exec maven插件)。

如果您无权访问那些应用程序的代码,则可以创建一个多模块maven项目。每个模块将获得其自己的bootstrap-app作为依赖项。您可以使用Maven插件(例如-exec或jetty插件)在此处构建docker映像,也可以在集成测试之前单独运行应用(每个应用在单独的模块->单独的目录->单独的类路径中)。

答案 1 :(得分:0)

您需要一个不同的pom.xml才能在整个应用程序中使用同一工件的不同版本。

您可以使用dependencyManagement Maven标签。

您可以跳过文档的第一部分,即使它很有趣,也可以直接转到

  

依赖性管理部分的第二个也是非常重要的用途是控制在传递性依赖性中使用的工件的版本。

部分。