måndag 12 maj 2008

JavaOne 2008 - Groovy och Grails

Egentligen handlar inte detta om Groovy eller Grails. Det handlar lika mycket om Ruby och Rails eller JRuby. Det är ju i det stora hela i princip samma sak. Rails som ett MVC-webbramverk har länge legat högt upp på min privatprojektslista (alltför länge). Athegas techdagar har handlat om Ruby on Rails, men jag har lyckats missa dom. Därför var det Graeme Rocher från G2One Inc som på JavaOnes första dag äntligen bände upp ögonen på mig. Jag gick i taket!

Så elegant! Under den tio minuter långa frågestunden som följde efter hans 50 minuterssession, skapade jag min första Grails-applikation – gnote, för att spara anteckningar från exempelvis JavaOne-sessioner. :)

Om du också vill skapa din första Grails-applikation på tio minuter, kan du följa denna minitutorial.

Ladda ner och packade upp Groovy och Grails:

wget http://dist.codehaus.org/grails/grails-bin-1.0.2.tar.gz
wget http://dist.groovy.codehaus.org/distributions/groovy-binary-1.5.6.zip

Sätt några miljövariabler:

export GRAILS_HOME=/usr/local/grails-1.0.2/
export GROOVY_HOME=/usr/local/groovy-1.5.6/
export PATH=$PATH:$GRAILS_HOME/bin:$GROOVY_HOME/bin

När miljön är på plats är det bara att skapa applikationen:

grails create-app gnote

Mina anteckningar måste sparas någonstans, så jag skapar en Note-klass:

cd gnote
grails create-domain-class Note

Jag editerar den skapade filen, grails-app/domain/Note.groovy, och lägger till två fält, note och title:

class Note {
String title
String note
}

Till sist vill jag klistra ihop allt med en View och en Controller:

grails generate-all Note

Klart! Starta webbappen:

grails run-app

Det fungerar!


Allt jag behöver göra för att kunna droppa den här applikationen i min favorit-container (Tomcat, Resin, Glassfish, etc.) är:

grails war

Det ger mig en war med kompilerad Javakod innehållandes min applikation, som under ytan förlitar sig på kända ramverk såsom, Hibernate, Spring och log4j.

Därför skulle jag vilja tacka Graeme Rocher, för att du bände upp mina ögon. Jag kan tänka mig en rad olika områden, där jag kommer använda Groovy och Grails framöver.

Inga kommentarer: