我尝试使用@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;班级组(参见截图)。我做错了什么?
答案 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>