在自定义 Spring Boot 自动配置项目中,我通常有一些被标记为可选的依赖项。因为我需要它们进行编译,但希望我的 autoconfig 用户手动将它们包含在他们自己的 POM 中,否则它们将由 Spring Boot 依赖项提供。
如何确保不同 Spring Boot 版本的用户可以使用我的自动配置而不会出现依赖/版本问题?
我看到两个非最佳解决方案;还有更多吗?
希望API保持不变
只是希望我的依赖项的 API 在较小的版本更改中保持稳定,这样如果我使用 Spring Boot 1.4.x 开发和编译我的 Autoconfig,我使用的 API 仍然与 1.5.x 等相同。
然后,我不一定期望它适用于 Spring Boot 2.x,并将相应的注释放入自述文件中。
显式跟踪每个 Spring Boot 版本
至少为每个次要 Spring Boot 版本显式构建一个版本,但甚至可能为每个 Patch 版本构建一个版本?谁知道什么时候会发生破坏性的 API 更改。然后,我需要记录我的自动配置所针对的确切 Spring Boot 版本。但这是很多工作。
当然 Spring Boot 自己的 autoconfig 项目是与 Spring Boot 同步开发的,因此任何问题都会在同一个版本中修复。
但是我自己的自动配置可能已经开发过一次,之后不会有很多变化。即使我的自动配置的“用户”正在更新他们的 Spring Boot 版本依赖项,我如何确保我的自动配置尽可能长时间地工作?