2015-09-22 9 views
13

मैं SBT-विधानसभा स्थापित करने कर रहा हूँ, लेकिन अब अटक कर रहा हूँ।SBT-विधानसभा अनसुलझे निर्भरता, स्काला

Sbt Version (from 'sbt about'): 0.13.8 
Current project is built against scala 2.11.6 
Sbt, sbt plugins, and build definitions are using Scala 2.10.4 

परियोजना/assembly.sbt

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.0") 
    resolvers += Resolver.url("bintray-sbt-plugins", url("http://dl.bintray.com/sbt/sbt-plugin-releases"))(Resolver.ivyStylePatterns) 

build.sbt

scalaVersion in ThisBuild := "2.11.6" 

~/.sbt/0.13/global.sbt

scalaVersion := "2.11.6" 

मैं sbt- एहसास असेंबली 2.10 के लिए असेंबली है। यदि मैं अपनी परियोजना को स्कैला 2.10 में बदलता हूं, तो मेरे पास 2.10 के लिए नई अनुपलब्ध निर्भरताएं हैं जो वांछनीय नहीं है। असेंबली प्लगइन के लिए 2.10 का उपयोग करने के लिए मेरे प्रोजेक्ट को कॉन्फ़िगर करने का कोई तरीका है?

==== bintray-sbt-plugins: tried 
    http://dl.bintray.com/sbt/sbt-plugin-releases/com.eed3si9n/sbt-assembly/scala_2.11/sbt_0.13/0.14.0/ivys/ivy.xml 

    :::::::::::::::::::::::::::::::::::::::::::::: 
    ::   UNRESOLVED DEPENDENCIES   :: 
    :::::::::::::::::::::::::::::::::::::::::::::: 
    :: com.eed3si9n#sbt-assembly;0.14.0: not found 
    :::::::::::::::::::::::::::::::::::::::::::::: 

    Note: Some unresolved dependencies have extra attributes. 
    Check that these dependencies exist with the requested attributes. 

     com.eed3si9n:sbt-assembly:0.14.0 (scalaVersion=2.11, sbtVersion=0.13) 

उत्तर

10

बस global.sbt से scalaVersion को हटा दें।

क्योंकि SBT is recursive यह जब अपने निर्माण फाइलें, जो क्योंकि एसबीटी 0.13 स्काला 2.10 के साथ बनाया गया है विफल रहता है के निर्माण global.sbt से इस scalaVersion का उपयोग करता है, और इसलिए सभी एसबीटी प्लगइन्स कर रहे हैं।

+0

यह (एन साल बाद) एक बहुत ही कष्टप्रद, खासकर जब से एसबीटी स्काला के खिलाफ बनाया जा नहीं लगती है जल्द ही किसी भी समय 2.11+ है। मैं पूरी तरह से स्पष्ट कारण है कि आप मेटा-निर्माण द्वारा निर्मित संस्करण एसबीटी परिभाषित करना चाहिए कलाकृतियों के लिए उपयोग करना चाहते हैं स्काला के संस्करण को परिभाषित है कि निर्माण चलाने की आवश्यकता नहीं हूँ। संदेहजनक कष्टप्रद क्योंकि यह दस्तावेज में * नहीं * स्पष्ट है। –

+0

यह दूसरी तरफ है: मेटा-बिल्ड को एसबीटी पुस्तकालयों का उपयोग करने की आवश्यकता है। एसबीटी 1.0 में स्कैला 2.11 का उपयोग किया जा रहा है (असुरक्षित रूप से, इसे मामूली रिलीज में बदला नहीं जा सकता है)। –

+0

यह बहुत आसान देखने के लिए कि एसबीटी 1.0 स्काला 2.11 का उपयोग होता था परन्तु समय अभी भी अपरिभाषित है, और यह एक दर्द है। मैं उत्सुक हूं हालांकि: मैंने सोचा कि जिस कारण से मैं परेशानी में भाग गया था, वह था कि मेरे मेटा-बिल्ड ने 'स्केलवर्सन' पर एक उचित-निर्माण परिभाषा बनाई थी, और मेरा उचित निर्माण नहीं चला सका क्योंकि एसबीटी को गठबंधन नहीं किया गया था उस? एक बार जब मैं अपने मेटा-निर्माण में एक संस्करण को निर्दिष्ट बंद कर दिया, मेरे उचित-निर्माण (यह मानते हुए मैं अपने मेटा-निर्माण में हार्ड-कोडेड पुस्तकालय निर्भरता) में काम किया। (मैं इस पर एक सप्ताह के लिए कुश्ती कर रहा हूं।: पी) –

4

मैं एक ऐसी ही समस्या है, क्या मेरी परियोजना के रूट निर्देशिका में project/plugins.sbt बजाय plugins.sbt को addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.3") जोड़ने था मदद की थी।

+0

टिप @ wmiel के लिए धन्यवाद –

1

मैं एक ऐसी ही त्रुटि थी। एसबीटी-असेंबली संस्करण बदलना (0.14.3 से 0.14.5 तक) काम किया। मेरे एसबीटी 1.0.3 संस्करण था और मैं प्रयोग किया है: addSbtPlugin ("com.eed3si9n"% "एसबीटी-विधानसभा"% "0.14.5")

0

बस बिल्कुल का उपयोग नहीं करते एसबीटी-विधानसभा! :) फ्लैट-जार विलय के दौरान संघर्ष का कारण बनता है जिसे असेंबली MergeStrategy के साथ हल करने की आवश्यकता होती है। द्विआधारी वितरण प्रारूप कि एसबीटी प्रदान करता है जो, आप द्विआधारी लिपि में वितरित करने के लिए सक्षम बनाता है डीएमजी, MSI और tar.gz. प्लगइन का उपयोग करें

चेक बाहर sbt-native-packager

संबंधित मुद्दे