1

一般包依赖问题

如果 P1 的类和接口都没有使用 P2,在什么情况下包 P1 和 P2 之间会存在依赖循环?即“隐藏的依赖”从何而来?

jdepend 的具体例子

stsimulatorjdepend 说我在and之间有包依赖关系,但没有使用任何部分的stsimulator.ststraversal类或接口,意思是stsimulatorstsimulator.ststraversal

  • Eclipse 中的 jdepend 的依赖项资源管理器是这样说的,并且
  • stsimulator既不导入 stsimuator.* 也不使用字符串“ststraversal”的所有类/接口。

这个怎么可能?

jdepend 打印的我的包依赖周期的一部分

--------------------------------------------------
- Package Dependency Cycles:
--------------------------------------------------

stsimulator
    |
    |   stsimulator.ststraversal
    |-> stsimulator


stsimulator.sts
    |
    |   stsimulator.interpreter.javacc
    |-> stsimulator
    |   stsimulator.ststraversal
    |-> stsimulator

stsimulator.ststraversal
    |
    |   stsimulator
    |-> stsimulator.ststraversal
4

1 回答 1

5

同样的事情也发生在我们身上。场景如下:
我们在相同的包结构中拥有测试类,但在不同的源目录中。实际代码和测试代码都被编译到同一个输出目录中(我认为这是 Eclipse 中的默认值,除非您另外指定)。由于 JDepend 不分析源代码而是分析编译后的代码,所以我们的测试类不小心引入了包之间的幻像依赖。

于 2011-10-14T15:19:27.730 回答