2017-03-09 54 views
0

我正在开发一个Eclipse插件,并且我已经多次遇到这个问题。在开发Eclipse插件时限制目标平台的API使用

我总是把我的目标平台更新为最新的(稳定)的Eclipse版本,这样我对所有的最新更新测试我的代码,修复等
然而,这可能(并且有)导致的落后意外破裂我的插件的兼容性,例如当我意外地使用新版API时,我并不支持在Eclipse版本中存在的API。
或者更加偷偷的例子,在4.6 Eclipse移动到Java 8并且一些接口方法得到了默认实现。现在,当我实现这些接口时,我的IDE不会自动为这些方法生成空实现,并且不会生成错误。如果我针对以前的Eclipse版本安装并运行此代码,这些方法将抛出AbstractMethodError,因为未提供任何实现。

所以我的问题是:是否有一个工具来进一步限制我的目标平台提供给一些早期的Eclipse API版本的API?
API Baseline是一个合适的工具吗?因为我无法像这样工作。 (它甚至允许非基线方法调用,不提更复杂的默认方法示例。)

回答

1

您可以使用多个目标平台,它们之间的切换不需要很长时间。为了测试Stack Overflow问题,我有一个Eclipse安装了10个目标平台。

因此,为您想要支持的最旧版本以及您当前的发布目标平台提供一个目标平台,并检查相应的代码。

,如果你想支持的Eclipse版本3的很大的变化,从Eclipse的3去4

+0

是啊,这是一个有点好的选择尤其重要的是与实际的目标平台进行测试。一个令人恼火的事情是,虽然很多方法在Eclipse API中被“genrified”,而新的泛型实现编译为向后兼容的字节码,但实际的Java代码在切换到较旧的Target Platform时变得不兼容。 –

相关问题