2016-02-01 4 views
8

私はCatsに依存するライブラリをいくつか持っています。たとえば、新しいCats 0.4.0リリースのPOMに間違ったapiURL値があるとします。私は私のAPIドキュメントを壊したくないので、私はapiMappingsとURLマッピングを提供します。SBTでの自動APIマッピングのオーバーライド

.. 
    autoAPIMappings := false, 
    apiMappings ++= (fullClasspath in Compile).value.flatMap(
    entry => entry.get(moduleID.key).map(entry -> _) 
).collectFirst { 
    case (entry, module) 
     if module.organization == "org.typelevel" && 
     module.name.startsWith("cats-") => 
      entry.data 
    }.map(_ -> url("https://typelevel.org/cats/api/")).toMap, 
    apiURL := Some(url("https://travisbrown.github.io/iteratee/api/")), 
    ... 

これは私のAPIドキュメントで猫の種類へのリンクはうまく動作しますが、それは私がタイプに対してリンクを失うことを意味し標準ライブラリやその他の依存関係から取得します。しかし、autoAPIMappingstrueに変更しても、私のカスタムマッピングはなくなりました。

これは私には分かりません。もちろん、明示的に定義されたマッピングは、依存関係POMから自動的に引き出されるマッピングによって上書きされるべきではないようです。

私はautoAPIMappingsを使用できますが、特定の依存関係のためにそれを上書きできますか?

答えて

1

これは、docタスクではapiMappingsが再定義され、autoAPImappings := trueを設定するとマッピングが追加され、グローバルスコープで定義されているマッピングが上書きされるためです。

この動作するはずです:!

apiMappings in doc := ... 
+1

を感謝 - これは合理的に聞こえる、と私はできるだけ早く確認するためにそれを試してみましょう。 –

関連する問題