我正在尝试设计一种解决方案,允许单个 Virgo 应用程序提供向后兼容性,以便与外部服务提供商的多个版本集成。
例如,名为 PortalApp 的应用程序是目前与 ThirdPartyApp 2.3 版本集成的门户。ThirdPartyApp v3.0 即将推出新功能,因此新版 PortalApp 将具有旧版 ThirdPartyApp 无法使用的功能。
我不需要能够在运行时动态地提供两个版本,只需要一个或另一个。我已经确定我可以在 Virgo usr 存储库中拥有两个版本的模块,并根据服务器启动时使用的 .plan 文件加载一个或另一个。
为简单起见,我们可以假设项目当前设置如下:
门户应用 - 网络应用 - 第三方提供商
还有许多其他模块依赖于 ThirdPartyProvider,因此更改 ArtifactId 会破坏这些链。我想做的是构建同一模块的两个不同版本。像这样的东西:
门户应用 - 网络应用 - - 1.0 - - 2.0 - 第三方提供商 - - 1.0 - - 2.0
我尝试在 web-app(包装:pom)中创建一个父 pom.xml,将 1.0 和 2.0 都标识为模块,但只有其中一个构建。
PortalApp 项目的单个构建可以构建模块的两个版本吗?