Sponsored Link •
|
Summary
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.
Advertisement
|
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_sbt
contains the maven file pom.xml
.
You can already run the sample application via sbt
:
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.
sbt
and maven
plugins installed and enabled. File
→Settings
→Plugins
is where you find this.
After installing sbt
plugin, go to Settings
→SBT
and set the right location of sbt.jar
File
→New Project...
→Import project from external model
As a root
, select the directory .../lift_21_sbt
where you have the newly-generated pom.xml
file.
IntelliJ will discover myFirstLiftApp:lift_21_sbt:1.0-SNAPSHOT
; click through Next
and 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:
Run
-> Edit Configurations
-> Edit Defaults
; go to the Before launch
options, uncheck Make
and choose 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.0
a 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.
Talk Back!
Have an opinion?
Readers have already posted
6
comments
about this weblog entry. Why not
add yours?
RSS Feed
If you'd like to be notified whenever Vlad Patryshev adds a new entry to his weblog, subscribe to his RSS feed.
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.
Sponsored Links
|