Building A Better Build: Our Transition From Ant To SBT(codeascraft.com) |
Building A Better Build: Our Transition From Ant To SBT(codeascraft.com) |
My biggest complaint early on, was the Ivy resolver. Maven "pom" style packages didn't work too well. I also know there was talk of using gradle's resolution system, which was rewrote long ago. Not sure if that went anywhere.
I think the IDE story will simplify, and work better, when sbt supports sbt-server. The work is being done here [2]. However, it is much better in IDEA 14 and the newest Scala plugin.
[1] https://github.com/w3c/banana-rdf/blob/master/project/build....
Lots of great stuff has been done with SBT plugins as well. I have an SBT project that will spin up multiple JVMs for distributed integration testing, build and push Docker images tagged with the current git branch, spin up external services under test and more. Once you get the hang of it, these things fall in place easily.
Also, Typesafe has really improved SBT's documentation over the past year. Plus a lot of the odder syntax choices have been replaced in favor of := instead.
Yeah I think native-packager is great [1].
I wish they didn't bork the template of the docs, it looks terrible. The content is better though for sure [2].
I'm in a position where I've become productive with the tool. But as is the way of the freelance software guy (or gal) the decisions that influence the tech. stack are not in your control.
So I'm being pushed to use the Play! Framework for micro services style arch. Which I'm happy enough about but afaik that means I'm tied into SBT.
Could you guys give advice for smoothing the learning curve to Sbt? Any hints/time sucks/resources appreciated
You can check out this [1] template I made for play apps with multi-module config in SBT which could be relevant.
And sbt-native-packager is definitely awesome. We have an SBT task that uses native packager to build a distributable for our Akka cluster and then build it into a Docker image, pushing it to our private repo on Docker Hub.