8

我有一些依赖于Cats的库。假设新的 Cats 0.4.0 版本apiURL在其 POM 中有错误的值。我不希望我的 API 文档中断,所以我提供了 URL 映射apiMappings

  ..
  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 文档中 Cats 类型的链接,但这意味着我丢失了标准库和其他依赖项中的类型的链接。但是,如果我更改autoAPIMappingstrue,我的自定义映射就消失了。

这对我来说没有任何意义——似乎明确定义的映射当然不应该被从依赖项 POM 中自动提取的映射覆盖。

autoAPIMappings可以为特定的依赖项使用但覆盖它吗?

4

1 回答 1

1

这可能是因为apiMappingsdoc任务重新定义,并在您设置时附加映射autoAPImappings := true,从而覆盖您在全局范围中定义的映射。

这应该有效:

apiMappings in doc := ...
于 2017-04-05T02:07:48.090 回答