繁体   English   中英

与jdk7和jdk8上的(已更改)doclet API保持兼容

[英]Stay compatible with (changed) doclet API on jdk7 and jdk8

我正在开发一个使用Doclet API的Maven插件(例如, ConfigurationImpl.getInstance()HtmlDocletWriter.commentTagsToString() )。 该API包含在JDK随附的tools.jar中。

在jdk8上,这些方法不再存在,因此插件中断。

我现在正在寻找一种使我的插件与jdk7和8一起使用的方法。

我正在考虑使用提供稳定API的接口,并为每个JDK提供不同的实现。 但是,我不确定如何切换/加载正确的实现。 注意,所有内容都必须打包在同一个jar中(Maven插件)。

有什么建议么?

创建一个工厂,为您提供界面实例。 在工厂中,您可以检查java.version系统属性。 如果>= 8 ,则将实例化JDK 8的接口实现,否则将实例化JDK 7的接口实现。那些实现类必须仅在该工厂中加载。 因此,您不会因缺少API而遇到问题,因为不会加载依赖于该API的类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM