禁止开发人员在Eclipse中使用某些API

时间:2012-03-09 15:29:10

标签: java eclipse

我们在eclipse中是否有任何插件/方式禁止(显示错误/警告)同时使用某种方法。在我的代码中,我想确认System.currentTimeMillis()/ Calendar.getInstance()没有被任何人调用,如果有人试图使用它,eclipse应该显示错误。

由于 安库什

2 个答案:

答案 0 :(得分:2)

您可以编写自己的FindBugs插件,该插件依赖于FindBugs API,为您提供有关方法调用的元数据(以及字节码中的其他操作码)。您需要专门实现一个自定义BytecodeScanningDetector,可以验证操作是否涉及在您的情况下执行一组禁用的API(System.currentTimeMillis()Calendar.getInstance())。

Here's a tutorial让你开始编写FindBugs插件。您可以在Eclipse中使用此插件,但最好在CI服务器中将其作为构建的一部分运行。

您可能还会发现其他静态分析工具(如PMD)可能具有相同的功能,使用自己的API公开。

此外,如果您只想将其作为构建的一部分运行,则可以将这些检查委派给Sonar,后者允许easy construction of architectural rules like these注意 - 我没有在方法上尝试这个,所以我警告说,当你想要禁止整个类使用而不是方法使用时,Sonar架构约束似乎更适合。

答案 1 :(得分:0)

Eclipse是一个IDE。它碰巧包含一个Java编译器,但是还有许多其他Java编译器也在Eclipse之外运行。 Eclipse显示了Java编译器返回的错误(IDE本身不是出现错误的错误)。

最好的办法是使用Eclipse在项目中搜索引用的能力。这是一个手动过程,但它会找到你想要的大多数参考。当然如果有人使用反射,所有的赌注都会被取消。