sbt test:doc找不到任何链接的成员

Tay*_*ese 14 scala sbt scaladoc

我试图跑sbt test:doc,我看到一些类似于下面的警告:

[警告] /Users/tleese/code/my/stuff/src/test/scala/com/my/stuff/common/tests/util/NumberExtractorsSpecs.scala:9:找不到任何能为"com.my"链接的成员.stuff.common.util.IntExtractor".

问题似乎是从测试源到主要源的Scaladoc引用无法正确链接.知道我可能做错了什么或需要配置什么?

以下是我的Build.scala的相关部分:

val docScalacOptions = Seq("-groups", "-implicits", "-external-urls:[urls]")

scalacOptions in (Compile, doc) ++= docScalacOptions
scalacOptions in (Test, doc) ++= docScalacOptions
autoAPIMappings := true
Run Code Online (Sandbox Code Playgroud)

Eug*_*ota 5

不确定这是否是令人满意的解决方案,但是...

Scaladoc当前期望成对的jar和URL可以使外部链接起作用。您可以使用强制sbt使用JAR链接内部依赖项exportJars。比较值

$ show test:fullClasspath
Run Code Online (Sandbox Code Playgroud)

设置前后exportJars。接下来,获取正在使用的JAR的名称,并将其链接到将要上传到的URL。

scalaVersion := "2.11.0"

autoAPIMappings := true

exportJars := true

scalacOptions in (Test, doc) ++= Opts.doc.externalAPI((
  file(s"${(packageBin in Compile).value}") -> url("http://example.com/")) :: Nil)
Run Code Online (Sandbox Code Playgroud)

现在,我看到了test:doc一个Scaladoc,其中包含从我的http://example.com/index.html#foo.IntExtractor的链接foo.IntExtractor

  • 有趣的是,这似乎可能会奏效,但令我惊讶的是,对于如此简单的事情,我不得不使用奇怪的解决方法。 (2认同)