如何在 scala-ide 中正确导入 SBT Build.scala

How to correctly import SBT Build.scala in scala-ide

由于 sbt 构建可以用 scala 编写并且它本身就是一个 scala 项目,我想将它导入 scala-ide 作为一个 scala 项目。例如使用以下代码。

Build.scala

import sbt._
import Keys._

object TestBuild extends Build {
  lazy val root = Project(id = "test",
    base = file("."),
    settings = Seq(
      organization := "com.tomahna",
      name := "demo",
      scalaVersion := "2.11.8"))
}

plugins.sbt

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0")

这个构建在 sbt 上运行良好,但是 Build.scala 不是由 eclipse 编译的,因此我既没有编译错误也没有自动完成。

我可以将项目文件夹添加到源文件夹,但是 import sbt._import Keys._ 将失败,因为 eclipse 项目未正确设置为 provide 这些依赖项。

有没有办法设置 sbt 项目,以便它与 scala-IDE 很好地交互?

来自 sbteclipse 手册:link

如果您想获得 Eclipse 对 sbt 构建定义的支持,例如对于您的 Build.scala 文件,请按照以下步骤操作:

如果您不是将 sbteclipse 作为全局插件使用(这是推荐的方式),而是将其作为项目的本地插件,您首先必须将 sbteclipse 作为插件 (addSbtPlugin(...)) 添加到构建定义项目,即 project/project/plugins.sbt

在sbt会话中,执行reload plugins

将构建定义项目的名称设置为有意义的名称:set name := "sbt-build"

执行eclipse然后重新加载return

将构建定义项目导入Eclipse并将根目录添加到构建路径