Scaladoc:@group标签未在API文档中显示

时间:2016-10-03 15:32:16

标签: scala sbt scaladoc

我尝试使用@groupname和@group标签在我的库API文档中组织一个类的成员,但它不起作用(我使用sbt 0.13.11)< / p>

我的玩具build.sbt

name := "test"
scalaVersion := "2.10.5"

我的玩具代码src/main/scala/test.scala

package test
/** Test class
 *
 * @groupname print Printer
 * @groupname throw Thrower
 */
class TestClass {
  /** @group print */
  def trivialPrint: Unit = print("Hello")
  /** @group throw */
  def trivialError: Unit = throw new Exception("Hello")
}

sbt doc编译一个API文档,其中我的两个函数都在&#34; Value Members&#34;班级组(参见截图)。我做错了什么?

enter image description here

3 个答案:

答案 0 :(得分:5)

在Scala 2.11之前,您必须在build.sbt中明确要求Scaladoc分组支持:

name := "test"
scalaVersion := "2.10.5"
scalacOptions += "-groups"

您可以将其范围限定为in (Compile, doc),但我不确定它是否重要。

与大多数与Scaladoc相关的事情一样,这基本上没有文档记录,但它确实有效。

答案 1 :(得分:2)

至少对于Scala 2.11.x,似乎我们仍需要特别要求它。请考虑build.sbt中的以下内容:

  /* Normal scalac options */
  scalacOptions := Seq(
    "-deprecation",
    "-Ypartial-unification",
    "-Ywarn-value-discard",
    "-Ywarn-unused-import",
    "-Ywarn-dead-code",
    "-Ywarn-numeric-widen"
  )

  /* Only invoked when you do `doc` in SBT */
  scalacOptions in (Compile, doc) += "-groups"

然后你的例子就可以了。

答案 2 :(得分:0)

根据其他答案。对于行家<arg>-groups</arg>。这是Maven版本:

<plugin>
        <groupId>org.scala-tools</groupId>
        <artifactId>maven-scala-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>compile</goal>
              <goal>testCompile</goal>
            </goals>
          </execution>
            <execution>
                <id>Scaladoc</id>
                <goals>
                    <goal>doc</goal>
                </goals>
                <phase>prepare-package</phase>
                <configuration>
                    <args>
                        <arg>-no-link-warnings</arg>
                        <arg>-groups</arg>
                    </args>
                </configuration>
            </execution>
        </executions>