2011-11-03 10 views
8

वाले एसबीटी 0.11 प्रोजेक्ट में प्रबंधित निर्भरताओं को कैसे सेट अप करें मैं एसबीटी 0.11 के साथ एक सरल स्कैला प्रोजेक्ट का निर्माण कर रहा हूं।Build.scala

सभी कोड फ़ाइलों पीछा कर रहा है


name := "MyProject" 

version := "1.0" 

scalaVersion := "2.9.1" 

libraryDependencies ++= Seq(
    "mysql" % "mysql-connector-java" % "5.1.+", 
    "c3p0" % "c3p0" % "0.9.1.2", 
    "org.apache.commons" % "commons-lang3" % "3.0.1", 
    "commons-lang" % "commons-lang" % "2.6", 
    "javassist" % "javassist" % "3.12.1.GA" 
) 

~/MyProject/project/Build.scala~/MyProject/src/main/scala/

~/MyProject/build.sbt में हैं निम्नलिखित


import sbt._ 

object MyProjectBuild extends Build { 
    lazy val MyProject = Project("MyProject", file(".")) 
} 

यह लगभग ठीक काम करने के लिए लगता है। परियोजना संकलित और चलाता है। प्रोजेक्ट का नाम सही ढंग से सेट किया गया है (यदि मैं Build.scala का उपयोग नहीं करता हूं, तो नाम build.sbt में निर्दिष्ट होने के बावजूद "डिफ़ॉल्ट - ????" जैसा कुछ दिखाई देता है)।

लेकिन समस्या यह है कि निर्भरता काम नहीं लगती है - update कमांड कुछ भी डाउनलोड नहीं करता है। इसे कैसे ठीक करें? क्या मुझे इस मामले में build.sbt की बजाय Build.scala में अपनी निर्भरताओं को निर्दिष्ट करने की आवश्यकता है?

+0

शीर्षक में, क्या आप 'build.scala' के बजाय' build.sbt' का मतलब है? –

+0

@ किपटन-बैरोस नंबर मेरा मतलब है कि 'build.sbt'' build.sbt' – Ivan

उत्तर

17

क्या यह संभव है कि आप पहले से ही परियोजना निर्भरताओं को पुनर्प्राप्त कर चुके हैं, लेकिन इसका एहसास नहीं है क्योंकि वे आइवी कैश में संग्रहीत हैं? आप कमांड के साथ एसबीटी की

show managed-classpath 

हाल संस्करणों एसबीटी कंसोल से प्रबंधित classpath देखने जब तक परियोजना ऐसा करने के लिए कॉन्फ़िगर किया गया है, इस परियोजना निर्देशिका में कामयाब रहे निर्भरता की दुकान नहीं कर सकते हैं। यदि आप चाहते हैं, तो आप अपने build.sbt फ़ाइल में निम्न जोड़ सकते हैं:

retrieveManaged := true 

यह एक ~/MyProject/lib_managed/ निर्देशिका और सामग्री का निर्माण करेगा।

+0

के अलावा 'प्रोजेक्ट' है, लेकिन यह scala पुस्तकालयों को lib_managed में कॉपी नहीं करता है ?! मैं इसे कैसे प्राप्त कर सकता हूं? – Themerius

+4

आपको एसबीटी कमांड 'रीलोड', 'क्लीन' और' अपडेट' चलाने की आवश्यकता हो सकती है। –

+0

अफसोस की बात यह काम नहीं करती है। 'Scala-compiler.jar' अभी भी सहेजा गया है ~/.sbt/boot/..., यह बहुत अच्छा होगा अगर यह lib_managed पर भी सहेजा जा सकता है। – Themerius

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