【发布时间】:2012-08-30 08:35:35
【问题描述】:
我想知道是否有一种方法可以为 Groovy 程序生成协作图,就像 Doxygen 为 Java 等所做的那样。我尝试运行 Doxygen,但它似乎无法解析 Groovy 文件(或我弄错了吗?)。
【问题讨论】:
我想知道是否有一种方法可以为 Groovy 程序生成协作图,就像 Doxygen 为 Java 等所做的那样。我尝试运行 Doxygen,但它似乎无法解析 Groovy 文件(或我弄错了吗?)。
【问题讨论】:
您可以从 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()
}
}
【讨论】:
根据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 解析器。
【讨论】: