2015-06-10 4 views
5

गठबंधन करने के लिए मैं निम्नलिखित की तरह एक बहु परियोजना परिभाषा कुछ है:कैसे crossProject और dependsOn

lazy val commonSettings = settings(
    libraryDependencies ++= Seq(
    "ch.qos.logback" % "logback-classic" % "1.1.2", 
    ... 
) 

lazy val core = (project in file(".")). 
    settings(commonSettings: _*). 
    settings(... 
) 

lazy val web = (project in file("web")). 
    settings(commonSettings: _*). 
    settings(... 
).dependsOn(core) 

समस्या है मैं स्काला जे एस क्लाइंट/सर्वर मॉडल का उपयोग करने के लिए वेब परियोजना की स्थापना करना चाहते हैं। इसलिए मुझे जेएस/जेवीएम/साझा भागों में विभाजित करने के लिए क्रॉसप्रोजेक्ट का उपयोग करने के लिए वेब प्रोजेक्ट का विस्तार करने की आवश्यकता है। लेकिन मुझे यह हासिल करने का सबसे अच्छा तरीका नहीं है।

lazy val web = crossProject. 
    settings(commonSettings: _*). 
    settings(... 
).jsSettings(... 
).jvmSettings(... 
).dependsOn(core) 

मैं अपने build.scala के लिए एक संकलन त्रुटि मिलती है: अगर मैं की तरह कुछ करने की कोशिश

... प्रकार मेल नहीं खाता; [त्रुटि] मिली: sbt.Project [त्रुटि] आवश्यक: org.scalajs.sbtplugin.cross.CrossClasspath पर निर्भरता [त्रुटि] आलसी मूल्य वेब = crossProject.settings()। जेएस सेटिंग्स()। jvmSettings()। निर्भर करता है (कोर) [त्रुटि]
^

+0

क्या आप पूरा त्रुटि संदेश साझा कर सकते हैं? आप एक मौजूदा परियोजना क्यों विस्तारित करना चाहते हैं? क्या आपने उदाहरण [यहां] देखा है (http://www.scala-js.org/api/sbt-scalajs/0.6.1/index.html#org.scalajs.sbtplugin.cross.CrossProject)? – marios

+0

इसके विपरीत, आप शायद अपने 'कोर' को एक क्रॉस-प्रोजेक्ट बनाना चाहते हैं, और 'enablePlugins (ScalaJSPlugin) 'के साथ एक सामान्य प्रोजेक्ट' वेब 'छोड़ दें। – sjrd

उत्तर

3

वेब परियोजना के लिए dependsOn बाहर छोड़ दें।

lazy val webJS = web.js.dependsOn(...) 

यह मेरे लिए चाल बना।

+0

अब और काम नहीं कर रहा है – jhegedus

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