0
繼後解釋basics of migrating to scalajs和this page約cross-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
總是成功,但不會重新生成文件。