2017-05-22 55 views
0

繼後解釋basics of migrating to scalajsthis pagecross-compilations,我決定做如下修改交叉編譯添加到我的獨立無依賴,Scala庫的提示:遷移庫scalajs後,發佈本地不起作用

  • 我添加的文件project/plugins.sbt
    addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.16")
  • build.sbt添加scalaVersion in ThisBuild := "2.11.8"的內容,因爲其他人只是scalaVersion使用2.10

我在build.sbt以下內容還補充,以確保我可以保持相同的目錄結構,因爲我沒有爲JVM或Javascript的任何特殊文件:

lazy val root = project.in(file(".")). 
    aggregate(fooJS, fooJVM). 
    settings(
    publish := {}, 
    publishLocal := {} 
) 

lazy val foo = crossProject.crossType(CrossType.Pure).in(file(".")). 
    settings(version := "0.1"). 
    jvmSettings(
    // Add JVM-specific settings here 
). 
    jsSettings(
    // Add JS-specific settings here 
) 

lazy val fooJVM = foo.jvm 
lazy val fooJS = foo.js 

但現在,在我使用sbt publish-local在本地發佈項目後,依賴此庫的項目不再有效,即他們看不到此庫提供的類並引發錯誤。 我看着.ivy2/local/.../foo/0.1/jars,JAR從1MB變爲1KB,所以錯誤是有道理的。

但是,如何確保JVM jar文件編譯正確?

更多信息

罐子時間不會再改變,它看起來像有了一定的miscompilation。我刪除了.ivy2緩存,但現在sbt publish-local總是成功,但不會重新生成文件。

回答

0

好的,我自己找到了解決方案。

我需要從構建中刪除publishLocal := {},現在所有項目取決於我的庫工作正常。