Back to the original question...

I have used SBT.  I love my experience with Scala, but am frustrated
with the whole Scala tool ecosystem right now.  I wasted way too much
time finding a reasonable combination of build tool/test framework/IDE
that kind of works.  But, along the way I tried out SBT and like it.
I was able to configure it quickly from an existing Maven project, and
really liked being able to learn it quickly and work quickly.  Now, I
pretty much just edit with my IDE, and don't worry so much when it
looses its brain.  I handle the build with SBT.

Once you start SBT, when you precede a command with "~" it makes it
watch for changes, so when I save files from the IDE, it builds
automatically based on the changed files.  I switch windows to see
results.

Here is a typical work flow.
  ~test
will compile all and run tests, then watch for changes.  Lets say I
change stuff and tests start failing, I cut the name of the failing
test out, stop the auto command by hitting any key and then start
  ~test-only com.bla.BrokenTest
This only runs the broken test until I fix it.  If I make big bad
changes I may even fall back to
  ~compile
or
  ~test-compile
and then work back up the layers until ~test is running all tests again.

I have really enjoyed how easily I can control the scope of my build.
I suspect that other build systems can do things like this, but for me
the point was that I couldn't figure out how in a reasonable amount of
time, but it seemed fairly easy with SBT.  I know that there are other
hot-swapping tools that enable even faster work flow, but I don't need
the grief of configuring even more stuff.  This seems pretty good to
me.

I would rather not have to switch between IDE and console window, but
I don't know how to get the IDE to be smart about what it builds,
reliably interact with Scala test frameworks, or to work well with
SBT.  Hopefully this will all come together some day :)  (I have used
both Netbeans and Eclipse and I don't really think either does well
yet, but I hear that work is being done on Eclipse for the next
version of Scala.  I look forward to any improvement.)

SBT does use Scala as its configuration, which is quite succinct and
fairly easy to understand, but can be a barrier to some people.  It
can build Java projects just as easily as Scala.  As I understand it
is using Ivy.  It differs from Maven in that it makes local copies of
all of your dependencies for each build setup.  You actually issue a
command to tell it when you want it to go get everything.

I did have trouble figuring out how to get it to retrieve things from
my local maven repository, and haven't figured out if it will publish
either.

I hope this give a little insight into SBT

-- 
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.

Reply via email to