2016-02-01 14 views
8

Tôi có một vài thư viện phụ thuộc vào Cats. Giả sử bản phát hành Mèo 0.4.0 mới có giá trị apiURL sai trong POM của nó. Tôi không muốn tài liệu API của tôi để phá vỡ, vì vậy tôi cung cấp các ánh xạ URL với apiMappings:Ghi đè ánh xạ API tự động trong SBT

.. 
    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/")), 
    ... 

này chỉ hoạt động tốt cho các liên kết đến các loại Cats trong tài liệu API của tôi, nhưng nó có nghĩa là tôi đã làm mất liên kết với nhiều loại từ thư viện chuẩn và các phụ thuộc khác. Tuy nhiên, nếu tôi thay đổi autoAPIMappings thành true, thì ánh xạ tùy chỉnh của tôi sẽ biến mất.

Điều này không có ý nghĩa gì đối với tôi — có vẻ như tất nhiên ánh xạ được xác định rõ ràng không nên bị ghi đè bởi ánh xạ được tự động kéo từ POM phụ thuộc.

Tôi có thể sử dụng autoAPIMappings nhưng ghi đè cho phụ thuộc cụ thể không?

Trả lời

1

Điều này có thể do apiMappings được định nghĩa lại cho nhiệm vụ doc và nối ánh xạ khi bạn đặt autoAPImappings := true và do đó ghi đè của bạn, được xác định trong phạm vi Toàn cầu.

này nên làm việc:

apiMappings in doc := ... 
+1

Cảm ơn -đây âm thanh hợp lý, và tôi sẽ cố gắng nó ra để khẳng định càng sớm càng tốt. –

Các vấn đề liên quan