11

我正在编写我的第一个 taglib 作为插件的一部分,我想记录它。添加 javadoc (有没有记录 groovydoc 的地方,或者它真的是一回事吗?)似乎不适用于非方法。

具体来说,如何在以下文件中记录 def mytag:

/**
 * This doc shows up
 */
class MyTagLib {
  static namespace = "myns"

  /**
   * This doc does not show up, but I'd like to document attrs.
   */
  def mytag = {attrs ->
    out << "something"
  }
}

由于 Grails 中的很多东西都是使用闭包来指定的,如果真的无法记录它们,那么看起来我们就有问题了。是否有其他一些涉及我应该使用的单独文档文件的解决方案?

4

2 回答 2

3

我刚刚读到了新的 Groovy 1.6 RC,它把我带到了 Jira,它有几个关于 groovydoc 的开放错误,包括一个专门关于记录字段和属性的错误,它仍然是开放的。最新评论谈到了主干中的部分实现,所以我必须检查一下。

这样就清除了当前状态。与此同时,我强迫自己将我的 taglib 发布到野外并记录它,这是我使用常规 HTML 页面(wiki 生成)所做的。对此有话要说,因为如果发现包含标签库详细信息的唯一文档被埋在许多自动生成的垃圾中,我实际上会被推迟。

于 2009-01-22T23:22:03.250 回答
0

你的问题让我很好奇,我环顾四周。似乎没有什么好的方法可以做到这一点。

我认为目前执行此操作的最佳方法是将可用标签及其参数记录在类级别的 javadoc 标头中。至少这样它们会出现在您的最终 API 规范中供人们查看。

我注意到那里有一些关于 groovydoc 的讨论,但我似乎找不到任何关于它的完全官方的东西,尤其是在与 Grails 的使用方面。我能够让 groovydoc 使用以下代码在我的一个 grails 1.0.3 应用程序上工作,但是当我添加它们时,它没有拾取我的 taglib 闭包上的任何文档注释。

<property environment="env"/>
<target name="groovydoc">
  <taskdef name="groovydoc" classname="org.codehaus.groovy.ant.Groovydoc">
    <classpath>
      <path path="${env.GRAILS_HOME}/lib/groovy-all-1.5.6.jar"/>
    </classpath>
  </taskdef>
  <mkdir dir="docs/gapi"/>
  <groovydoc destdir="docs/gapi" sourcepath="grails-app" use="true" windowtitle="groovydoc" private="true"/>
</target>

如果您使用 groovydoc 的时间足够长,您可能可以按摩它以使其与 taglibs 一起使用,或者如果您有时间尝试它,它也可以与 Grails 1.1 beta 一起使用。

于 2009-01-22T17:43:52.683 回答