java 包版本如何在只有弃用的方法时发生变化

How java package version is changing when have only deprecated methods

我正在考虑在我们的项目中使用 @deprecated 注释的某些方法来管理包版本控制的最佳方法。我们正在使用 maven-bundle-plugin,它要么从 packageinfo 文件中获取包版本,要么如果没有文件,则从 bundle-version 中获取。

我们遵循这个关于包的约定:("X.Y.Z") Z 在有错误修复时增长,Y 在有新功能时增长,X 在没有兼容性时增长。

假设我们有版本为 ("1.0.0") 的包 P。在 P 中有两个 类 Foo 和 Bar。如果我们在 Foo 中有两个方法 - A() 和 B() 并且我们弃用了方法 A() 并且这些都是 hole 包中的更改。包版本如何变化?

我将通过它们的正确 OSGi 名称引用这些版本段:Major(您的 X)、Minor(Y)和 Micro(Z):

  • 当发生影响 API;
  • 所有用户的重大更改时,应增加 Major
  • Minor 应该在有新功能时递增,这不会破坏消费者,但可能会破坏提供者,因为他们无法自动提供新功能;
  • 对于不会导致任何向后兼容性问题的任何其他更改,应增加 Micro。

清楚地向方法添加 @Deprecated 不会改变消费者或提供者的兼容性。因此这是一个微小的变化(在你的例子中你应该递增 "Z")。这最多是 API.

的文档更改