我的目标是列出项目的公共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/ - 他们很有希望,但似乎并没有完全解决问题。对于这两个工具,似乎如果一个类依赖于接口,则没有内置的方法将该接口的实现包含为传递依赖。
有没有办法从任何工具中提取这些信息而无需大量定制?