1

我过去使用 sbt-eclipse 成功地将一个简单的 sbt 项目导入到 eclipse 中。我现在正在尝试利用 sbt 的 CrossProject 机制来使用 Scala-JS 环境(在 sbt 中创建 2 个子项目——一个用于 Javascript,一个用于 JVM 代码)。建议(请参阅此处的 SBT 文档链接) 是在 build.sbt 文件中添加设置 'EclipseKeys.useProjectId := true' 以支持将(现在)2个项目导入到一个 eclipse 项目中。然后我在正在运行的 SBT 会话中发出“eclipse”命令来创建我的 eclipse 项目,然后启动 eclipse 并尝试导入这个新项目。当我这样做时,eclipse中的导入对话框向导确实向我显示了两个子项目,但是当我尝试完成导入时,eclipse抱怨该项目已经存在并且我在我的eclipse项目中得到了两个看起来很奇怪的链接没有什么。

将 CrossProject sbt 构建到 Eclipse 中的正确程序是什么?

4

1 回答 1

0

好的,所以似乎 eclipse 不喜欢我在 build.sbt 的共享设置区域中的项目只有一个“名称”我有这个:

lazy val sp = crossProject.in(file(".")).
settings(
  version := "0.1",
  name := "SJSTut",
  scalaVersion := "2.11.7"
).
jvmSettings(
  // Add JVM-specific settings here
  libraryDependencies ++= Seq(...)
).
jsSettings(
  // Add JS-specific settings here
  libraryDependencies ++= Seq(...)
)

我应该做的是:

lazy val sp = crossProject.in(file(".")).
settings(
  version := "0.1",
  scalaVersion := "2.11.7"
).
jvmSettings(
  // Add JVM-specific settings here
  name := "SJSTutJVM",
  libraryDependencies ++= Seq(...)
).
jsSettings(
  // Add JS-specific settings here
  name := "SJSTutJS",
  libraryDependencies ++= Seq(...)
)

请注意,从设置中删除了“名称”分配,而是将其放置到 jvmSettings 和 jsSettings 区域中,并具有唯一不同的名称。

现在我可以把它拉到 Eclipse 中(作为 2 个单独的项目)。如果其他人有更好的设置,我很想听听。

于 2015-07-10T16:44:13.507 回答