|
|
|
|
|
by eeperson
4378 days ago
|
|
Have you tried SBT 0.13? I think it addresses some of your issues with SBT syntax. The DSL usage has been greatly simplified (many fewer operators to remember). Also, the identifiers are now the same in both the config files and the shell. In older versions of SBT (SBT 0.7 and earlier) the configuration was done using immutable settings. In SBT 0.10 there was a switch to the current model. I believe this was done to make the configuration more declarative. A side of affect of this is that builds can now be easily parallelized without becoming nondeterministic. It also means that, in general, you shouldn't care what order tasks a
re run in. As far determining what keys are available in which scopes, I have always found this pretty easy to
determine by using the 'inspect' command in the SBT repl. Although, perhaps I am not entirely under
standing your issue here. SBT does have a problem for specific cases when you do need tasks to run in a particular order. However,
this is something that is currently intended to be addressed[1] in the SBT 1.0 release, which is scheduled for the end of this year. [1] https://github.com/sbt/sbt/issues/1001 |
|
It's easy to inspect a single setting with `inspect`, but it's very unwieldy to try to examine the entire dependency tree this way.
The very un-Scala-esque syntactic rules in build.sbt files also are a huge pain for anybody who just needs to dabble. Clearly, writing Build.scala files was a major drag, but it really feels to me that the answer should have been a better pure Scala API, rather than a DSL. It's a really leaky abstraction.
View an example of my pain here: http://stackoverflow.com/questions/24286551/get-assets-to-co...