2015-06-10 18 views
5

Tôi có một nét gì đó đa dự án như sau:Làm thế nào để kết hợp crossProject và 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) 

Vấn đề là tôi muốn thiết lập các dự án web sử dụng mô hình client/server Scala JS. Vì vậy, tôi cần mở rộng dự án web để sử dụng crossProject để chia thành các phần js/jvm/shared. Nhưng tôi không chắc chắn cách tốt nhất để đạt được điều này. Nếu tôi cố gắng làm một cái gì đó như:

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

tôi nhận được một lỗi biên dịch cho build.scala tôi:

... loại không phù hợp; [lỗi] được tìm thấy: sbt.Project [lỗi] bắt buộc: org.scalajs.sbtplugin.cross.CrossClasspathDependency [lỗi] lazy val web = crossProject.settings(). jsSettings(). jvmSettings(). dependsOn (core) [lỗi]
^

+0

Bạn có thể chia sẻ thông báo lỗi hoàn chỉnh không? Tại sao bạn muốn mở rộng một dự án hiện có? Bạn đã xem ví dụ này chưa (http://www.scala-js.org/api/sbt-scalajs/0.6.1/index.html#org.scalajs.sbtplugin.cross.CrossProject)? – marios

+0

Ngược lại, bạn có thể muốn biến 'core' thành một dự án chéo và để' web' trở thành một dự án bình thường với '.enablePlugins (ScalaJSPlugin)'. – sjrd

Trả lời

3

để lại ra dependsOn cho dự án web.

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

Điều này đã làm cho tôi khó khăn.

+0

dường như không hoạt động bây giờ nữa – jhegedus

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