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