查找Java类的所有传递依赖项,包括仅通过其接口使用的实现类

时间:2017-08-11 13:35:42

标签: java dependencies static-code-analysis jdeps

我的目标是列出项目的公共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.htmlhttp://depfind.sourceforge.net/ - 他们很有希望,但似乎并没有完全解决问题。对于这两个工具,似乎如果一个类依赖于接口,则没有内置的方法将该接口的实现包含为传递依赖。

有没有办法从任何工具中提取这些信息而无需大量定制?

0 个答案:

没有答案