将库迁移到scalajs后,publish-local无效

时间:2017-05-22 09:42:13

标签: scala cross-compiling scala.js

根据帖子提示解释basics of migrating to scalajsthis page关于cross-compilations的提示,我决定通过执行以下更改将交叉编译添加到我的独立无依赖scala库:< / p>

  • 我添加了一个包含内容
    的文件project/plugins.sbt addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.16")
  • 我在scalaVersion in ThisBuild := "2.11.8"中添加了build.sbt,因为只有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文件?

更多信息

jar时间不再改变,看起来有些错误编译。我删除了.ivy2缓存,但现在sbt publish-local总是成功完成,但不会重新生成文件。

1 个答案:

答案 0 :(得分:0)

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

我需要从构建中删除publishLocal := {},现在所有依赖于我的库的项目都能正常工作。

相关问题