Site-wide Tags:  Linux(17) | CommandLine(12) | Ubuntu(10) | RemoteAccess(7) | Tools(7) | Vim(7) | LiftWeb(5) | SBT(5) | SoftwareDev(5) | Mac(5) | Scripts(4) | WebDev(4) | Diagrams(4) | Lifty(3) | NetworkDrives(3) | Processwire(3) | Security(3) | Fog(3) | VCS(3) | BestPractices(3) | RaspberryPi(2) | WebDesign(2) | Encryption(2) | Windows(2) | SSH(2) | WinCommandPrompt(2) | GitHubRepos(2) | Emacs(2) | PHP(2) | IDE(2) | ErrorMsgs(2) | JVM(2) | Hardware(2) | Bash(2) | Networks(2) | Graphviz(2) | Cloning | Cygwin | Graphics | Java | SystemRecovery | lessc | Maven | Python | PXE | Samba | LXDE | PackageManagement | LifeHacks | LESS |

This site has been archived and will no longer be updated.
You can find my new profile at My new blog is at

Entry 1: SBT or Maven?

Topic: Lift   

Tags:  LiftWeb   SBT   

Created on Wed, 13 Jun 2012.

I've been meaning to post this for a bit, but a very strange bug caused by a third party service provided by my web host had my page rendered uneditable for a brief while. I wouldn't mind hosting this site on my own servers, but I've already paid for this place... Anyways, back to the post:

At first, when I first started studying scala and lift, I was under the impression that Maven was the way to go to manage ones Lift (liftweb) projects. I began with (and still am) reading Programming in Scala ( to learn the fascinating scala language.

After reading enough to get an idea, I am ready to dive in and get some hands on experience with it.

Really wanting to get my lift skills going, I figured I'd start with a mainly theoretical knowledge of scala, while hoping to exercise my scala skills while using lift.

Perhaps I will will work on some scala desktop tools and applications as well as some scala/lift applications so I can learn from 2 angles simultaneously.

I set up maven, followed some tutorials with it, then went to download lift. Hmm.. Lift was using SBT (Simple Build Tool) now? ok, now I'll have to play with them a bit and decide.

Maven appeared to be the more robust and enterprise-ish ready, but SBT was what it promised to be, simple. The commands to start and manage a new project in SBT, to me, seemed much simpler that Mavens Architypes which needed to be defined. I can't image memorising the syntax of them all that need to be defined for a lift project. It seemed to me that everyone who used Maven just copied and pasted the same long line into the command line to get things started. Given the time, I try to avoid these situations of doing complex things 'just because' and without knowing the configurations.

So, SBT was my choice in the end.

However, SBT is evolving quickly, even doing a major update from 0.7 to 0.10 which broke a lot of the documentation since they were not backwards compatible. Many of the sample lift projects and templates are a bit confusing because its hard to tell which version of sbt, lift, and scala they used. I worked out the kinks, and finally have my environment the way I want it:
    - vim as my IDE
    - SBT to manage projects and dependencies
    - SBT container (called container now, instead of jetty. I believe it's still jetty 8) running a non-default port (SBT 0.7 and 0.10 have different ways of setting the default port).

Unfortunately, I didn't log things as I was figuring them out.. so, I'll try track down which configurations I made and versions I used to put together some sort of tutorial/log

PLEASE let me know if I'm doing something wrong, or if you have any suggestions or requests~

blog comments powered by Disqus

All Entries Within This Topic:

Subscribe to this topic:

Browse Topics: