java包P1和P2有一个依赖循环,但P1的任何类都没有使用P2(由jdepend分析)
一般包依赖性问题
如果P1的类和接口没有使用P2,那么在什么情况下,包P1和P2之间会存在依赖循环?也就是说,“隐藏依赖”来自哪里
jdepend
jdepend说我在stsimulator
和stsimulator.ststraversal
之间有一个包依赖关系,但是stsimulator
的类或接口没有使用stsimulator.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
# 1 楼答案
同样的事情也发生在我们身上。场景如下:
我们在相同的包结构中有测试类,但在不同的源目录中。实际代码和测试代码都被编译到同一个输出目录中(我认为这是Eclipse中的默认值,除非您另有指定)。由于JDepend不分析源代码,而是分析编译后的代码,因此我们的测试类意外地在包之间引入了幻影依赖关系