如何对多个 Spring Boot 版本的共享 Java 库进行版本控制

问题描述 投票:0回答:1

我正在创建一个共享库,将在我公司的许多项目中使用。这些项目基于不同的 Spring-Boot 版本。相同版本的库将无法工作(据我所知),例如在 Spring Boot 3.0.0 和 2.7.10 项目上。我不知道在这种情况下进行版本控制的最佳实践是什么。我相信我不应该为 SB 2.7 制作库版本 1.0.0,为 SB 3.0.0 制作库版本 2.0.0,因为在某些时候,由于重大更改,我可能需要增加库中的主要版本,而我不会'不能将 1.X.Y 增加到 2.0.0。

这个问题有什么解决办法吗?我应该在每个版本的工件名称中附加一些内容吗?

maven shared-libraries versioning compatibility dependency-management
1个回答
2
投票

没有真正的标准方法。你可以:

  1. 使用 2-1.0.0 和 3-1.0.0 等版本号来表示 Spring Boot 版本。
  2. 您可以将版本添加到artifactId,例如
    my-cool-library-sb2
    my-cool-library-sb3
  3. 您可以使用相同的 GAV 创建这两个工件,但使用不同的分类器,例如
    springboot2
    springboot3

第一种方法的缺点是,人们在更新 POM 中的版本时可能会意外地从 Spring Boot 2 切换到 Spring Boot 3。

第二种方法的缺点是您可能会意外加载这两个库(通过传递依赖项),因为它们不再共享相同的坐标。

第三种方法的缺点是两个工件只有一个 POM,这意味着所有依赖项必须位于同一版本中。

© www.soinside.com 2019 - 2024. All rights reserved.