5

SBT から標準ライブラリにリンクするように ScalaDoc をセットアップしたいと思います。0.12.4 を使用していますが、まもなく 0.13 に切り替える予定です。また、0.13 のサポートを利用してセットアップを簡単にしたいと考えています。

最適なオプションは、 0.13 のautoAPIMappings自動マッピングです。

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

そのpomが設定scala-libraryされているため、 はそれをサポートする必要があり、それが SBT が読み取るものです。info.apiURL

ただし、これは機能しません。どちらStringGenTraversableハイパーリンクされていません。引数lastにオプションが追加されていないことを示します。scaladoc

そう:

  1. どうすれば修正できますautoAPIMappingsか?
  2. 代替手段はありますか?
  3. この機能が機能していることは確認していませんが、設定する別のパッケージが必要なだけかもしれませんinfo.apiUrl。思い当たるパッケージはありますか?Google は役に立たないように見えます。いくつかのプロパティを持つ Maven パッケージを照会する方法や、poms で全文検索を行う方法さえも明らかではありません。find ~/.m2 ~/.ivy2 -name '*.pom' -type f|xargs grep info.apiUrl2G のローカル キャッシュで結果が見つかりませんでした。

(この質問はSBT Scaladoc Configurationの複製のように見えるかもしれませんが、更新された構成と異なる SBT バージョンを使用するためのものであるため、質問は異なります。さらに、既存の回答は非推奨のソリューションを示しています)。

4

2 に答える 2

7

の解決策はわかりませんautoAPIMappingsが、いくつかの代替手段があります。

  1. 可能な代替手段として、0.13apiMappingsを使用して、手動マッピングをセットアップできます。私のシステムでは、これがコマンドラインにlast doc追加され、機能することを示しています。-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 以降が必要です。

  1. または、同じオプションを手動で追加することもできます。これは 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 が必要です。

  2. 最後に、 @MarkHarrah が以前に提案したように、古い Scaladocs では を使用でき-external-urlsます。

    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) はハイパーリンクされています。

于 2013-09-11T17:09:11.040 に答える