GroovyDoc作为Maven插件

9

有没有可用的Maven插件,可以利用GroovyDoc,最好是作为报告呈现?

我想GMaven可能是一个不错的选择,但它的文档过于陈旧(1.0版本,而当前版本是1.3),而且GMaven插件没有适合的mojo,如您所见:

mvn help:describe -DgroupId=org.codehaus.gmaven -DartifactId=gmaven-plugin

这个插件有9个目标: groovy:compile
描述:编译Groovy源代码。 groovy:console
描述:启动Groovy GUI控制台。 groovy:execute
描述:执行Groovy脚本。 groovy:generateStubs
描述:从Groovy源代码生成Java存根。 groovy:generateTestStubs
描述:从Groovy测试源代码生成Java存根。 groovy:help
描述:显示有关gmaven-plugin的帮助信息。
调用
mvn groovy:help -Ddetail=true -Dgoal=<goal-name>
显示参数详细信息。 groovy:providers
描述:显示已配置和选择的Groovy运行时提供程序的信息。 groovy:shell
描述:启动Groovy Shell(也称为groovysh)。 groovy:testCompile
描述:编译Groovy测试源代码。

那么,有没有maven groovydoc插件的指针可以提供?谷歌没有找到任何有意义的结果。


2
GMaven的作者曾尝试在一段时间前重写插件(https://github.com/keeganwitt/GMavenPlus)。其中一个目标是提供对GroovyDoc的支持,但在撰写本文时,它尚未发布。 - sworisbreathing
@sean-patrick-floyd 我计划在本月发布一个测试版。我正在努力设置Maven仓库。 - Keegan
4个回答

10

虽然没有任何 Groovydoc Maven 兼容插件,但使用 Maven 生成您的 Groovy 类文档非常容易。这是我们在项目中的做法:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-antrun-plugin</artifactId>
  <version>1.7</version>
  <executions>
    <execution>
      <id>groovydoc</id>
      <phase>site</phase>
      <goals>
        <goal>run</goal>
      </goals>
      <configuration>
        <target>
          <taskdef name="groovydoc"
            classname="org.codehaus.groovy.ant.Groovydoc" 
            classpathref="maven.compile.classpath"
          />
          <groovydoc destdir="${project.reporting.outputDirectory}/groovydoc"
            sourcepath="${basedir}/src/main/groovy" use="true"
            windowtitle="${project.name}"
            doctitle="${project.name}"
          >
            <link packages="java.,org.xml.,javax.,org.xml."
              href="http://download.oracle.com/javase/6/docs/api" />
            <link packages="org.apache.tools.ant." 
              href="http://evgeny-goldin.org/javadoc/ant/api" />
            <link packages="org.junit.,junit.framework."
              href="http://kentbeck.github.com/junit/javadoc/latest" />
            <link packages="groovy.,org.codehaus.groovy."
              href="http://groovy.codehaus.org/api/" />
            <link packages="org.codehaus.gmaven."
              href="http://evgeny-goldin.org/javadoc/gmaven" />
          </groovydoc>
        </target>
      </configuration>
    </execution>
  </executions>
</plugin>

我会接受这个,因为它似乎可以工作,尽管我不再需要它。 - Sean Patrick Floyd
你为什么不再需要它了?你找到了替代方案吗? - mindthief

3
我不认为有适用于Groovydoc的Maven插件,但是您可以使用Ant任务。GMaven采用了不同的方法:generateStubs为Groovy类创建Java存根,然后可以通过常规Javadoc插件进行处理。然而,我不知道这种方法在实践中的效果如何,特别是因为较新版本的GMaven使用Groovy编译器的存根生成器,该生成器并没有考虑产生适当的Javadoc。

2

您需要使用gmavenplus插件:http://groovy.github.io/GMavenPlus/groovydoc-mojo.html

<project>
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.gmavenplus</groupId>
        <artifactId>gmavenplus-plugin</artifactId>
        <version>1.5</version>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
      <groupId>org.codehaus.groovy</groupId>
      <artifactId>groovy-all</artifactId>
      <!-- any version of Groovy \>= 1.5.0 (except 1.6 RC 1) should work here -->
      <version>2.4.7</version>
    </dependency>
  </dependencies>
</project>

运行以下命令: mvn gplus:generateStubs gplus:groovydoc


1
对我来说已经太晚了,但希望它能帮助其他人。谢谢! - Sean Patrick Floyd
它为我生成了空文档。我有什么遗漏吗? - Paramesh Korrakuti
@ParameshKorrakuti,你正在运行什么目标?你确实已经将Javadocs/Groovydocs添加到了你的实际源文件中,对吗? - Sean
@SeanPatrickFloyd 添加了 groovydics 并执行了 mvn gplus:generateStubs gplus:groovydoc 命令。它正在创建带有空文档的框架。 - Paramesh Korrakuti
@ParameshKorrakuti 如果您已经在代码中编写了javadoc样式的注释并使用了上面显示的maven插件,但仍然出现空文档的情况,我不确定原因。如果您分享一个github或类似的链接,我很乐意查看并尝试提供帮助。 - Sean

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接