java - 当只有已弃用的方法时,java 包版本如何变化

标签 java osgi version deprecated specifications

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

我们遵循关于软件包的约定:(“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 的文档更改。

关于java - 当只有已弃用的方法时,java 包版本如何变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36421482/

相关文章:

java - 以编程方式创建一个新的 TextView,然后将其显示在另一个 TextView 下方

java - Iterable - 移动到指定位置

eclipse - OSGi 开发使用了哪些 IDE 设置和工作流程?

linux - 如何更改内核的版本字符串?

macos - 在 IntelliJ 首选项/设置中的何处指定 JVM?

elasticsearch - elasticsearch版本编号算法

java - 如何比较两个字符数组,比较同一年表中的字符,但给出一个代表每个可能符号的额外符号?

java - 卡在递归 Fork/Join 上

java - 在 pax 考试测试阶段未创建配置管理和声明性服务

java - OSGi:无法直接从存储库安装超过 1 个资源?