可以使用FindBugs标记使用已被列入黑名单的方法的代码吗?

时间:2013-03-13 20:23:16

标签: java findbugs

我们正在尝试将我们非常庞大的代码库从Guava 11迁移到Guava 14,并希望捕获已删除或已弃用的API的使用。 FindBugs可以执行此类检查吗?如果是这样,怎么样?

3 个答案:

答案 0 :(得分:4)

一种解决方案是使用Oracle的Java编译器javac来执行此操作。

如果使用API​​中的删除方法会导致编译器错误,因此可以通过编译代码来找到它们。

可以使用javac -deprecation选项找到不推荐使用的方法。有关-deprecation的更多信息: http://docs.oracle.com/javase/6/docs/technotes/tools/windows/javac.html

答案 1 :(得分:1)

您还可以使用PMD Sourceforge执行此任务。有一些规则可以让你找到弃用的方法

答案 2 :(得分:1)

我认为javac无法涵盖的一个方面是,如果您无法更改第三方代码以添加@Deprecated注释。如果你只是想避免一个尚未被标记为已弃用的方法,你可以使用我为FindBugs编写的这个插件:

https://github.com/Grundlefleck/FindBugs4Deprecating3rdParty

文档很少,所以你可能需要自己探索一下。它允许在属性文件中配置方法和类。我用它来弃用org.junit.Assert.assertThat