2016-02-01 9 views
8

में ऑटो एपीआई मैपिंग ओवरराइड करना मेरे पास कुछ पुस्तकालय हैं जो Cats पर निर्भर करते हैं। आइए मान लें कि नई बिल्लियों 0.4.0 रिलीज में इसके पीओएम में गलत apiURL मूल्य है। मैं अपने एपीआई डॉक्स को तोड़ने के लिए नहीं करना चाहते हैं, तो मैं 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/")), 
    ... 

यह मेरा एपीआई डॉक्स में बिल्लियों प्रकार के लिंक के लिए बस ठीक काम करता है, लेकिन इसका मतलब है कि मैं प्रकार के लिए लिंक खोना मानक पुस्तकालय और अन्य निर्भरताओं से। अगर मैं autoAPIMappings से true बदलता हूं, हालांकि, मेरा कस्टम मैपिंग समाप्त हो गया है।

इससे मुझे कोई समझ नहीं आती है-ऐसा लगता है कि स्पष्ट रूप से परिभाषित मैपिंग को मैपिंग द्वारा ओवरराइड नहीं किया जाना चाहिए जो स्वचालित रूप से निर्भरता पीओएम से खींचा जाता है।

क्या मैं autoAPIMappings का उपयोग कर सकता हूं लेकिन विशिष्ट निर्भरताओं के लिए इसे ओवरराइड कर सकता हूं?

उत्तर

1

ऐसा इसलिए है क्योंकि apiMappingsdoc कार्य के लिए नए सिरे से परिभाषित है, और मैपिंग संलग्न कर देता है जब आप autoAPImappings := true निर्धारित करते हैं, और इस तरह तुम्हारा है, जो वैश्विक दायरे में परिभाषित कर रहे हैं ओवरराइड करता है।

यह काम करना चाहिए:

apiMappings in doc := ... 
+1

धन्यवाद -इस उचित लगता है, और मैं asap पुष्टि करने के लिए इसे बाहर की कोशिश करेंगे। –