Ниже представлен проект sbt 0.13.1
с настраиваемой настройкой и значением для него:
% pwd
/Users/tisue/myproj
% ls
build.sbt
% cat build.sbt
val foo = settingKey[String]("This is a custom setting")
foo := "bar"
% sbt
[info] Set current project to myproj (in build file:/Users/tisue/myproj/)
> show foo
[info] bar
Пока все хорошо. Но теперь:
> set foo := "qux"
<set>:1: error: not found: value foo
foo := "qux"
^
[error] Type error in expression
Разве это не работает?
Я частично понимаю, что здесь происходит неправильно; set
оценивает выражение Scala, и это выражение, по-видимому, компилируется в контексте, в котором val foo
не входит в область видимости.
Но я ожидал бы, что магия, которая обеспечивает foo
, в области видимости, когда foo := ...
скомпилирована из файла .sbt
, также будет действовать, когда одна и та же вещь будет скомпилирована в оболочке.