无论如何使用jDepend,ant contrib的verifydesign任务或使用黑名单而不是白名单的任何其他类似工具来运行包依赖性分析?
也就是说,我希望不那么严格(至少在最初阶段)。而不是指定包A必须仅依赖于B,C和K;包B必须仅依赖于Q,W和R;对于系统中的每个包,我首先要说的是:包A绝对不能与W和Y有任何联系,以及其他任何东西对我来说没问题。然后我可以随着时间的推移逐渐添加每个包的预期依赖关系的完整列表(A仅取决于B,C,K),因为事情被重构。
是否存在这样做的工具?
答案 0 :(得分:1)
我可以做得更好:你可以在AspectJ AOP中表达这样的东西,以便它可以在运行时强制执行。 “AspectJ In Action”向您展示了如何。
答案 1 :(得分:1)
您可以使用Structure101 Architecture Diagrams执行此操作,因为图表可以包含您的代码库的子集。在您的示例中,您可以在图中为A,W和Y创建3个单元格,将W和Y放置在图表中的A之上(依赖关系只能向下流动,或者至少向上依赖关系被视为图表的“违规”) )。将W和Y并排放在A之上表示W和Y之间不应存在依赖关系。如果您不想限制W和Y之间的依赖关系,则可以将它们合并到单个单元格中 - 不会检查依赖项。自动检查规则,您可以生成警告和/或错误(如果需要,可以中断构建)。随着重构工作的进展,您可以逐步添加到图表中......
答案 2 :(得分:0)
verifydesign可以不那么严格,因为你可以定义一个" wad"可以这么说,让它变得越来越严格。指向遗留系统(通常违反大量预期设计)的文章的链接。