Подтвердить что ты не робот

Не удается создать исходный код с SBT 0.11 из "Полная настройка"

На основе доступной документации sbt 0.11.0 ( "Общие задачи" ) и других) и после просмотра, как это делается в Scalaz SBT build и Scalate SBT build Я не могу понять, почему мой простой пример не работает:

import sbt._
import Keys._

object MyBuild extends Build {

  lazy val project = Project(
    id = "root", 
    base = file("."),
    settings = Defaults.defaultSettings ++ Seq(
      (sourceGenerators in Compile) <+= (sourceManaged in Compile) map { dir =>
        val file = dir / "bla.scala"
        IO.write(file, """object Bla extends App { println("bla!") }""")
        Seq(file)
      }
    )
  )

}

Полагая это на проект /build.scala пустого проекта и запуская "sbt compile", ничего не генерирует/компилирует, а "sbt run" жалуется, что не может найти какой-либо основной класс.

Теперь, если я поместил параметр в "быструю конфигурацию" build.sbt следующим образом вместо полной конфигурации, как указано выше, он просто работает.

(sourceGenerators in Compile) <+= (sourceManaged in Compile) map { dir =>
    val file = dir / "bla.scala"
    IO.write(file, """object Bla extends App { println("bla!") }""")
    Seq(file)
}

Очевидно, что создание файла build.sbt в "полной конфигурации" - только проект далеко не желателен, по крайней мере для меня.

Итак, почему этот параметр не работает в полной конфигурации?

4b9b3361

Ответ 1

Просто скопируйте свой код в файл project/Build.scala и запустите его с помощью sbt run, и это сработает.

Вы уверены, что ваш Build.scala правильно расположен (должен находиться в директории project)?