我正在开发一个Eclipse插件,并且我已经多次遇到过这个问题。
我总是更新目标平台以获取最新(稳定)Eclipse版本,以便我针对所有最新更新,修复等测试我的代码。
然而,这可能(并且已经)导致我的插件的向后兼容性的意外破坏,例如,当我不小心使用Eclipse版本中不存在的新API时,我的目的是支持
或者,更为偷偷摸摸的例子,在4.6 Eclipse中移动到Java 8并且一些接口方法得到了默认实现。现在,当我实现这些接口时,我的IDE不会自动为这些方法生成空实现,并且不会生成错误。如果我针对之前的Eclipse版本安装并运行此代码,则这些方法将抛出AbstractMethodError
,因为没有提供任何实现。
所以我的问题是:是否有一个工具可以进一步限制我的Target Platform提供给某些早期Eclipse API版本的API? API Baseline是适合的工具吗?因为我无法让它像这样工作。 (它甚至允许非基线方法调用,更不用说更复杂的默认方法示例。)
答案 0 :(得分:1)
您可以使用多个目标平台,在它们之间切换并不需要很长时间。为了测试Stack Overflow问题,我有一个带有10个目标平台的Eclipse安装。
为您想要支持的最早版本以及当前版本目标平台提供目标平台,并检查代码运行情况。
如果您想支持Eclipse 3版本,那么使用实际的目标平台进行测试尤为重要,因为从Eclipse 3到4的变化很大。