【问题标题】:How to create collaboration diagrams for a Groovy program?如何为 Groovy 程序创建协作图?
【发布时间】:2012-08-30 08:35:35
【问题描述】:

我想知道是否有一种方法可以为 Groovy 程序生成协作图,就像 Doxygen 为 Java 等所做的那样。我尝试运行 Doxygen,但它似乎无法解析 Groovy 文件(或我弄错了吗?)。

【问题讨论】:

    标签: groovy doxygen


    【解决方案1】:

    您可以从 IntelliJ 内部生成图表。它们看起来像这样:


    编辑

    我认为在 groovy 中创建正确的协作图非常困难(也许是不可能的),因为它是一种带有鸭子类型的动态语言。

    如何在协作图中说明这些类:​​

    class Cage {
        private def bird
    
        Cage(bird) {
            this.bird = bird
        }
    
        def shake() {
            bird.sing()
        }
    }
    
    class Dog {
        def sing() {
            println 'Woof'
        }
    }
    
    
    class Main {
        static void main(String[] args) {
            Cage cage = new Cage(new Dog())
            cage.shake()
        }
    }
    

    【讨论】:

    • 恐怕这是一个类图(显示类层次结构),而不是协作图(显示程序中的流程)。不过图表不错:)
    • @uzilan 你是对的。我更新了我对协作部分的想法。
    【解决方案2】:

    根据doxygen manual,Groovy 受支持(支持的语言有 C、C++、C#、Objective-C、IDL、Java、VHDL、PHP、Python、Tcl、Fortran 和 D )。根据FAQ 的问题 12,如果您尝试记录不受支持的语言,则必须修改 doxygen 源。

    如果 Groovy 类似于其中一种语言(我从未使用过 Groovy),那么您可以尝试使用这些现有的解析器之一来尝试解析 Groovy 源代码。为此,您需要配置 doxygen 以在具有 .groovy 扩展名的文件上运行正确的解析器(这是 groovy 文件的正确扩展名吗?)。您可以通过将 doxygen 配置文件中的 EXTENSION_MAPPING 配置选项设置为

    EXTENSION_MAPPING += groovy=Java
    

    这告诉 doxygen 对任何扩展名为 .groovy 的文件使用 Java 解析器。

    【讨论】:

    • 我的第二段是在黑暗中刺伤,最终 根据常见问题解答的问题 12,如果您尝试记录不受支持的语言,则必须修改 doxygen 源。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-06
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多