我正在开发一个Eclipse插件,并且我已经多次遇到这个问题。在开发Eclipse插件时限制目标平台的API使用
我总是把我的目标平台更新为最新的(稳定)的Eclipse版本,这样我对所有的最新更新测试我的代码,修复等
然而,这可能(并且有)导致的落后意外破裂我的插件的兼容性,例如当我意外地使用新版API时,我并不支持在Eclipse版本中存在的API。
或者更加偷偷的例子,在4.6 Eclipse移动到Java 8并且一些接口方法得到了默认实现。现在,当我实现这些接口时,我的IDE不会自动为这些方法生成空实现,并且不会生成错误。如果我针对以前的Eclipse版本安装并运行此代码,这些方法将抛出AbstractMethodError
,因为未提供任何实现。
所以我的问题是:是否有一个工具来进一步限制我的目标平台提供给一些早期的Eclipse API版本的API?
API Baseline是一个合适的工具吗?因为我无法像这样工作。 (它甚至允许非基线方法调用,不提更复杂的默认方法示例。)
是啊,这是一个有点好的选择尤其重要的是与实际的目标平台进行测试。一个令人恼火的事情是,虽然很多方法在Eclipse API中被“genrified”,而新的泛型实现编译为向后兼容的字节码,但实际的Java代码在切换到较旧的Target Platform时变得不兼容。 –