Я использую SBT для создания проекта scala. Я хочу определить очень простую задачу, когда при вводе generate
в sbt:
sbt> generate
Он вызовет мой метод my.App.main(..)
для создания чего-то.
В myproject/src/main/scala/my
есть файл App.scala
, а упрощенный код выглядит следующим образом:
object App {
def main(args: Array[String]) {
val source = readContentOfFile("mysource.txt")
val result = convert(source)
writeToFile(result, "mytarget.txt");
}
// ignore some methods here
}
Я попытался добавить следующий код в myproject/build.sbt
:
lazy val generate = taskKey[Unit]("Generate my file")
generate := {
my.App.main(Array())
}
Но он не компилируется, так как он не может найти my.App
.
Затем я попытался добавить его в myproject/project/build.scala
:
import sbt._
import my._
object HelloBuild extends Build {
lazy val generate = taskKey[Unit]("Generate my file")
generate := {
App.main(Array())
}
}
Но он все еще не может быть скомпилирован, что он не может найти пакет my
.
Как определить такую задачу в SBT?