如何使用sbt-eclipse

时间:2015-07-10 15:20:28

标签: sbt scala.js sbteclipse

我过去曾使用sbt-eclipse成功将一个简单的sbt项目导入eclipse。我现在正试图利用sbt的CrossProject机制来使用Scala-JS环境(在sbt中创建2个子项目 - 一个用于Javascript,一个用于JVM代码)。建议(see SBT docs link here)是添加设置' EclipseKeys.useProjectId:= true'在build.sbt文件中,支持将(现在)2个项目导入一个eclipse项目。然后我给了日食' eclipse'在正在运行的SBT会话中命令创建我的eclipse项目,然后启动eclipse并尝试导入这个新项目。当我这样做时,eclipse中的导入对话框向导会向我展示两个子项目,但是当我尝试完成导入时,eclipse抱怨该项目已经存在,并且我在我的eclipse项目中看到了两个看似奇怪的链接没有。

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

1 个答案:

答案 0 :(得分:0)

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

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个独立的项目)。如果其他人有更好的设置,我很乐意听到它。