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

Scaladoc: @group tag not showing in API documentation

我正在尝试使用@groupname 和@group 标签在我的库API 文档中组织class 的成员,但它不起作用(我使用的是sbt 0.13 .11)

我的玩具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 文档,其中我的两个函数都在 class 的 "Value Members" 组中(参见屏幕截图)。我做错了什么?

在 Scala 2.11 之前,您必须在 build.sbt:

中明确请求 Scaladoc 分组支持
name := "test"
scalaVersion := "2.10.5"
scalacOptions += "-groups"

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

像大多数与 Scaladoc 相关的东西一样,这基本上没有记录,但它有效。

至少对于 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"

然后你的例子应该可以工作。

根据其他答案。对于 Maven <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>