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

Java 如何通过maven导入多个Spring应用程序,其中每个依赖项位于自己的类路径上(以避免依赖项冲突)?,java,spring,maven,spring-boot,Java,Spring,Maven,Spring Boot,我计划通过maven dependecy将多个Spring引导应用程序引入单个模块,以便在那里启动它们以进行集成测试。如何通过maven让这些spring引导应用程序拥有自己的类路径,并避免依赖冲突?每个Spring引导应用程序可能使用不同的Spring版本您需要不同的pom.xml,以便在整个应用程序中具有相同工件的不同版本 你可以使用Maven标签 您可以跳过文档的第一部分,即使它很有趣,也可以直接转到 依赖项管理部分的第二个也是非常重要的用途是控制在可传递依赖项中使用的工件的版本 部分。在

我计划通过maven dependecy将多个Spring引导应用程序引入单个模块,以便在那里启动它们以进行集成测试。如何通过maven让这些spring引导应用程序拥有自己的类路径,并避免依赖冲突?每个Spring引导应用程序可能使用不同的Spring版本

您需要不同的pom.xml,以便在整个应用程序中具有相同工件的不同版本

你可以使用Maven标签

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

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


部分。

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


如果你没有访问这些应用程序代码的权限,你可以创建一个多模块maven项目。每个模块将获得自己的引导应用程序作为依赖项。你可以在这里构建docker镜像,也可以在集成测试之前在单独的模块->单独的目录->单独的类路径中使用maven插件(例如-exec或jetty插件)单独运行应用程序。

我想看看,这些插件不起作用。如果一个引导应用程序需要Spring 3,而另一个则需要Spring 5,那么如果您仅在dependencyManagement部分将Spring版本限制为5,那么首先就不会启动。我认为多模块maven方法对我更具吸引力。一旦我创建了一个多模块maven项目,我是否可以覆盖每个项目的application.yml文件?我想先初始化一些属性,以便进行测试,然后再启动它们。