微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

标准库的SBT Scaladoc配置

我想将 ScalaDoc设置为从SBT链接到标准库.我正在使用0.12.4,但我很快就会切换到0.13.此外,我想通过使用0.13的支持使设置变得简单.

最好的选择是使用0.13’s autoAPIMappings自动映射:

//Requires SBT 0.13. However,automatic mapping does not work for the standard library.
autoAPIMappings := true

scala-library应该支持它,因为its pom设置了info.apiURL和that’s what SBT reads.

但是,这不起作用. String和GenTraversable都没有超链接. last显示scaladoc参数没有添加任何选项.

所以:

>我该如何修复autoAPIMappings?
>有替代品吗?
>我没有观察到这个功能有效,但也许我只需要另一个设置info.apiUrl的包.想到任何包裹?谷歌似乎没有帮助,如何查询具有某些属性的maven包,甚至如何在poms上进行全文搜索并不明显.找到〜/ .m2~ / .ivy2 -name’* .pom’-type f | xargs grep info.apiUrl在我的2G本地缓存中找不到任何结果.

(这个问题可能看起来是SBT Scaladoc Configuration的重复,但是它用于更新配置和不同的SBT版本,所以问题是不同的;此外,现有的答案显示一个弃​​用的解决方案).

解决方法

我知道autoAPIMappings没有解决方案,但这里有一些替代方案.

>一种可能的替代方案,使用0.13’s apiMappings,可以设置手动映射.在我的系统上,上一篇文档显示添加了-doc-external-doc:/Users/pgiarrusso/.sbt/boot/scala-2.10.2/lib/scala-library.jar#http://www.scala-lang .org / api / 2.10.2 /到命令行,它的工作原理.

apiMappings += (scalaInstance.value.libraryJar -> url(s"http://www.scala-lang.org/api/${scalaVersion.value}/"))

这需要Scaladoc 2.10.2或更高版本.

>或者,可以手动添加相同的选项.这在SBT 0.12上是必要的.主要的重要步骤是找到合适的库.

在0.13语法中:

scalacoptions in (Compile,doc) += s"-doc-external-doc:${scalaInstance.value.libraryJar}#http://www.scala-lang.org/api/${scalaVersion.value}/"

在0.12语法中:

scalacoptions in (Compile,doc) <+= (scalaVersion,scalaInstance) map { (scalaVer,scalaIn) =>
  "-doc-external-doc:" + scalaIn.libraryJar + "#http://www.scala-lang.org/api/" + scalaVer + "/"}

此选项仍需要Scaladoc 2.10.2.
>最后,对于较旧的Scaladocs,可以使用-external-urls,即使它不那么精确(并因此被弃用),如@MarkHarrah had suggested earlier.

在0.13语法中:

scalacoptions in (Compile,doc) += s"-external-urls:scala=http://www.scala-lang.org/api/${scalaVersion.value}/"

在0.12语法中:

scalacoptions in (Compile,doc) <+= scalaVersion map (scalaVer => "-external-urls:scala=http://www.scala-lang.org/api/" + scalaVer + "/")

最后请注意,在所有情况下,String的出现都不会成为超链接,可能是因为类型别名的一些错误.但是,其他类型(包括GenTraversable)是超链接的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐