2012-08-30 30 views
3

我想知道是否有一種方法來爲Groovy程序生成協作圖,就像Doxygen爲Java等做的那樣。我嘗試運行Doxygen,但它似乎無法解析Groovy文件(或者我弄錯了?)。如何爲Groovy程序創建協作圖?

回答

0

按照doxygen manual Groovy是支持(支持的語言是C,C++,C#,Objective-C中,IDL,爪哇,VHDL,PHP,Python和Tcl的,Fortran和d)。根據FAQ的問題12,如果您嘗試記錄不支持的語言,則必須修改doxygen源。

如果Groovy與其中一種語言相似(我從未使用過Groovy),那麼您可以嘗試使用這些現有的解析器來嘗試解析Groovy源代碼。要做到這一點,你需要配置doxygen運行正確的解析器文件與.groovy擴展名(這是正確的擴展groovy文件?)。您可以通過設置doxygen的配置文件中的EXTENSION_MAPPING配置選項這樣做是爲了

EXTENSION_MAPPING += groovy=Java 

這告訴Doxygen的使用Java解析器上的任何文件擴展名爲.groovy

+0

謝謝,但不幸的是這沒有奏效。任何其他想法? – uzilan

+0

我的第二段是在黑暗中刺,最終*根據FAQ的問題12,如果您試圖記錄不支持的語言,您將不得不修改doxygen源。* – Chris

0

您可以從IntelliJ內部生成圖表。他們是這樣的:

enter image description here


編輯

我認爲這是相當困難(也許不可能)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() 
    } 
} 
+0

恐怕這是一個類圖(顯示類層次結構),而不是協作圖(顯示程序中的流程)。尼斯圖雖然:) – uzilan

+0

@uzilan你是對的。我更新了關於協作部分的想法。 – maba