Sponsored Link •
Transition to Scala 2.8 and Lift 2.1 turned the usual beginner trails impenetrable. It took me more than a week to figure out how to start with Lift on IntelliJ if you use Scala 2.8. Here's my experience.
First, I have to thank Sim for scala/lift/sbt cheatsheet for the Scala 2.7.7 version. So, what is the problem? Scala 2.8.0 is too new, and if you just started learning Scala Lift, and you do not want to go back to 2.7.7, you discover yourself in murky waters of undocumented failures, just because you have to figure out where exactly you should find the new code, how to run sbt, what to do with maven, and, most importantly, how can you start developing anything - probably in IntelliJ, which has the most mature Scala plugin at the time of this writing. I did carefully read (many times) the "sbt cheatsheet" referenced above, and, well, it is good, but the problem is, it is no good with Scala 2.8.0. So this is my story.
sbt, something like
java -Xmx512M -jar \home\yourname\scala\sbt-launch-0.7.4.jar
mkdir oursample cd oursample git clone git://github.com/lift/lift_21_sbt.gitSince we want to work in IntelliJ, let's run maven to generate an "archetype" from which we'll build IntelliJ project:
mvn archetype:generate -U -DarchetypeGroupId=net.liftweb -DarchetypeArtifactId=lift-archetype-basic -DarchetypeVersion=2.0-scala280-SNAPSHOT -DarchetypeRepository=http://scala-tools.org/repo-snapshots -DremoteRepositories=http://scala-tools.org/repo-snapshots -DgroupId=myFirstLiftApp -DartifactId=lift_21_sbtSee that
lift_21_sbtcontains the maven file
pom.xml. You can already run the sample application via
cd lift_21_sbt ../../sbtAt prompt, enter
updateand then enter
jetty-runIn a minute or two you will have jetty run the sample app; just check out http://localhost:8080.
But this is not our goal; we want a project for IntelliJ.
mavenplugins installed and enabled.
Pluginsis where you find this. After installing
sbtplugin, go to
SBTand set the right location of
Import project from external modelAs a
root, select the directory
.../lift_21_sbtwhere you have the newly-generated
pom.xmlfile. IntelliJ will discover
myFirstLiftApp:lift_21_sbt:1.0-SNAPSHOT; click through
Finish. In a minute or two you will see a project created; you could compile it... You are all set. Tweak the code ad libitum, compile... You may want to fix run configuration for scala console:
Edit Defaults; go to the
Before launchoptions, uncheck
Run SBT Action / jetty-run. Then, when you have your code open, run it; sbt will launch jetty while you have scala console; here I am at loss on why do we need this console. But jetty works!
sbt, right? type
package- and very soon you can find in
.../lift_21_sbt/target/scala_2.8.0a war file (with a weird name). You can deploy this file in Tomcat or Jetty, on your server - it runs the sample Lift app when launched.
About the Blogger
Vlad Patryshev was born in Russia, graduated from Leningrad University, majoring in Algebra; His studies combined practical programming with interests in category and topos theory. He spent 7 years at Borland, 3.5 years at Google, and is now at Telenav, investigating the brave new mobile world.
This weblog entry is Copyright © 2010 Vlad Patryshev. All rights reserved.