【问题标题】:Need a Java Package Dependancy Analysis Tools需要一个Java包依赖分析工具
【发布时间】:2010-07-01 19:19:30
【问题描述】:

是否可以使用 jDepend、ant contrib 的 verifydesign 任务或任何其他使用黑名单而不是白名单的类似工具来运行包依赖关系分析?

也就是说,我希望不那么严格(至少在最初)。而不是指定包 A 必须只依赖于 B、C 和 K;包 B 必须只依赖于 Q、W 和 R;等等对于系统中的每个包,我想首先说:包A绝对不能与W和Y以及其他任何东西有任何联系我没问题。随着时间的推移,随着时间的推移,我可以逐渐添加每个包的预期依赖项的完整列表(A 仅依赖于 B、C、K)。

那么是否有工具可以做到这一点?

【问题讨论】:

    标签: java ant-contrib jdepend


    【解决方案1】:

    您可以使用 Structure101 Architecture Diagrams 执行此操作,因为图表可以包含代码库的子集。在您的示例中,您可以在图表中为 A、W 和 Y 创建 3 个单元格,将 W 和 Y 放在图表中的 A 上方(依赖项只能向下流动,或者至少向上的依赖项被认为是图表的“违规” )。将 W 和 Y 并排放置在 A 上方表示 W 和 Y 之间不应该有依赖关系。如果您不想限制 W 和 Y 之间的依赖关系(还),您可以将它们合并到一个单元格中并相互- 将不检查依赖项。规则会自动检查,您可以生成警告和/或错误(如果需要,请中断构建)。随着重构工作的进行,您可以逐渐添加到图表中......

    【讨论】:

    • 这看起来很有希望,我必须下载试用版。感谢您的链接。
    【解决方案2】:

    我可以做得更好:您可以在 AspectJ AOP 中表达这样的事情,以便可以在运行时强制执行。 “AspectJ In Action”向您展示如何。

    【讨论】:

      【解决方案3】:

      verifydesign 可以不那么严格,因为您可以定义一个“wad”,可以说是越来越严格。一篇文章的链接,其中包含有关遗留系统的文章(通常违反大量预期设计)。

      http://www.devx.com/opensource/Article/33729/0/page/4

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多