有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java包P1和P2有一个依赖循环,但P1的任何类都没有使用P2(由jdepend分析)

一般包依赖性问题

如果P1的类和接口没有使用P2,那么在什么情况下,包P1和P2之间会存在依赖循环?也就是说,“隐藏依赖”来自哪里

jdepend

jdepend说我在stsimulatorstsimulator.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) 个答案

  1. # 1 楼答案

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