我的目标是列出我项目的公共 API 类的所有传递依赖项,并使用它来集中测试工作,以防对这些依赖项进行任何代码更改。
例如:
class MyApi {
MyDao md;
public void methodA() {
//do something with md;
}
}
interface MyDao { }
class MyDaoImpl implements MyDao { }
因此,如果我知道 MyDaoImpl 已被修改(比如从提交历史记录中)并且我知道 MyApi.methodA 使用 MyDaoImpl,那么我的测试应该专注于检查它。我需要 MyApi.methodA() 的依赖项列表,包括 MyDao 和 MyDaoImpl。
到目前为止,我已经尝试了两种工具 - https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jdeps.html和http://depfind.sourceforge.net/ - 他们很有希望,但似乎不能完全解决问题。对于这两种工具来说,如果一个类依赖于一个接口,似乎没有内置方法将该接口的实现包含为传递依赖项。
有没有办法从任何工具中提取这些信息而无需大量定制?