Невозможно сгенерировать исходный код с SBT 0.11 из «Полный Конфигурация »

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

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)
      }
    )
  )

}

Помещая это в project / 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 в проекте только с «полной конфигурацией» далеко не желательна, по крайней мере, для меня.

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

26
задан Pablo Lalloni 7 October 2011 в 21:44
поделиться

1 ответ

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

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

2
ответ дан 28 November 2019 в 17:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: