【问题标题】:After migrating library to scalajs, publish-local does not work将库迁移到 scalajs 后,本地发布不起作用
【发布时间】:2017-05-22 17:52:02
【问题描述】:

按照解释basics of migrating to scalajsthis page 关于cross-compilations 的帖子的提示,我决定通过以下更改将交叉编译添加到我的独立无依赖项scala 库中:

  • 我添加了一个文件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 文件?

更多信息

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

【问题讨论】:

    标签: scala cross-compiling scala.js


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-07
      • 1970-01-01
      • 2016-09-20
      • 2013-11-26
      • 2012-10-04
      相关资源
      最近更新 更多