是否有Java的代码分析工具来断言包依赖性/非依赖性?
我有一个项目,依赖关系在不应该相互了解的包之间悄悄出现,特别是反向依赖关系,这应该是一种方式。
我想指定允许依赖哪些包对(在哪个方向上)。或者,指定不允许相互依赖的包(或者不允许双向依赖)会有所帮助。理想情况下,这将是可以作为Ant构建和/或JUnit运行的一部分运行的东西,如果引入了违反规则的新依赖项,则会导致构建失败。然后我们会将其添加到CI流程中。
能够在包组级别指定依赖关系也很有用(例如,"web"CAN中的所有包和子包都依赖于"api"或其子包中的任何包)。
一些与案例相关的细节,针对我的特定项目:
- Java版本为1.7
- 构建过程基于Ant(如果需要,可以升级到最新版本)
- 使用JUnit进行测试(如果需要,可以升级到最新版本)
您需要像Jdepend这样的解决方案。有一个关于如何与junit 一起使用的示例