Grails; Spring, Hibernate gibi güçlü Java altyapılarını kullanan ama dil olarak Groovy isimli Java tabanlı scripting dilini kullanan bir web uygulama platformudur.
Grails ile sağlam, esnek ve hızlı web uygulamaları geliştirmek çok kolaylaşmış ve yazılım geliştirme süreci çok kısalmıştır.
Java ile benzerliği dolayısı ile Groovy scripting dili, Java ile yazılmış Jython, JRuby gibi diğer pekçok dillere nazaran daha kolay öğrenilmekte ve Java'nın zorluklarını taşımamaktadır.
Bu yazımızda teorik bilgiden çok uygulamaya yöneleceğiz.
Yazımızın yazılıdığı tarihte Grails'in son sürümü 1.0.3'dür ve aşağıdaki adresten indirilebilir:
http://www.grails.org/Download
Uygulamamızda Grails'i indirdiğimiz ve açtığımız dizin c:\java dizinidir.
Ortam değişkenlerine GRAILS_HOME ekliyoruz ve değerini C:\java\grails-1.0.3 olarak ayarlıyoruz. Daha sonra path değişkenine de GRAILS_HOME\bin olarak ilave yapmak gerekli.
Bu duruma gelince artık uygulamanın çalışıp çalışmadığına bakabiliriz. Komut satırından Grails dizinine geçelim. cd c:\java\grails-1.0.3
Burada Grails'e ait temel komutları görmek istersek aşağıdaki şekilde yardım alabiliriz:
C:\java\grails-1.0.3>grails -help Welcome to Grails 1.0.3 - http://grails.org/ Licensed under Apache Standard License 2.0 Grails home is set to: C:\java\grails-1.0.3
Base Directory: C:\java\grails-1.0.3 Note: No plugin scripts found Running script C:\java\grails-1.0.3\scripts\Help.groovy Environment set to development
Usage (optionals marked with *): grails [environment]* [target] [arguments]*
Examples: grails dev run-app grails create-app books
Grails'in sağladığı şablon uygulamalarını oluşturmak için bu komutlar yeterli gelebiliyor.
Biz de bu şekilde hızlı bir web uygulaması oluşturacağız.
Uygulamanın adı btdeneyim olsun.
C:\java\grails-1.0.3>grails create-app btdeneyim
Welcome to Grails 1.0.3 - http://grails.org/ Licensed under Apache Standard License 2.0 Grails home is set to: C:\java\grails-1.0.3
Base Directory: C:\java\grails-1.0.3 Note: No plugin scripts found Running script C:\java\grails-1.0.3\scripts\CreateApp.groovy Environment set to development [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\src [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\src\java [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\src\groovy [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app\controllers [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app\services [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app\domain [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app\taglib [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app\utils [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app\views [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app\views\layouts [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app\i18n [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app\conf [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\test [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\test\unit [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\test\integration [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\scripts [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\web-app [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\web-app\js [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\web-app\css [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\web-app\images [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\web-app\META-INF [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\lib [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app\conf\spring [mkdir] Created dir: C:\java\grails-1.0.3\btdeneyim\grails-app\conf\hibernate [propertyfile] Creating new property file: C:\java\grails-1.0.3\btdeneyim\application.properties [copy] Copying 2 files to C:\java\grails-1.0.3\btdeneyim [copy] Copied 1 empty directory to 1 empty directory under C:\java\grails-1.0.3\btdeneyim [copy] Copying 2 files to C:\java\grails-1.0.3\btdeneyim\web-app\WEB-INF [copy] Copying 5 files to C:\java\grails-1.0.3\btdeneyim\web-app\WEB-INF\tld [copy] Copying 87 files to C:\java\grails-1.0.3\btdeneyim\web-app [copy] Copying 18 files to C:\java\grails-1.0.3\btdeneyim\grails-app [copy] Copying 1 file to C:\java\grails-1.0.3\btdeneyim [copy] Copying 1 file to C:\java\grails-1.0.3\btdeneyim [copy] Copying 1 file to C:\java\grails-1.0.3\btdeneyim [copy] Copying 1 file to C:\java\grails-1.0.3\btdeneyim [propertyfile] Updating property file: C:\java\grails-1.0.3\btdeneyim\application.properties Created Grails Application at C:\java\grails-1.0.3/btdeneyim
Bu komuttan anlaşıldğı kadarıyla uygulama yaratıldı. Ancak içerisinde henüz birşey yok.
Fakat biz yine de uygulamanın çalışıp çalışmadığına bakalım.
Welcome to Grails 1.0.3 - http://grails.org/ Licensed under Apache Standard License 2.0 Grails home is set to: C:\java\grails-1.0.3
Base Directory: C:\java\grails-1.0.3\btdeneyim Note: No plugin scripts found Running script C:\java\grails-1.0.3\scripts\RunApp.groovy Environment set to development [mkdir] Created dir: C:\Documents and Settings\mtac\.grails\1.0.3\projects\btdeneyim\classes [groovyc] Compiling 6 source files to C:\Documents and Settings\mtac\.grails\1.0.3\projects\btdeneyim\classes [mkdir] Created dir: C:\Documents and Settings\mtac\.grails\1.0.3\projects\btdeneyim\resources\grails-app\i18n [native2ascii] Converting 11 files from C:\java\grails-1.0.3\btdeneyim\grails-app\i18n to C:\Documents and Settings\mtac\.grails\1.0.3\projects\btdeneyim\resources\grails-app\i18n [copy] Copying 1 file to C:\Documents and Settings\mtac\.grails\1.0.3\projects\btdeneyim\classes [copy] Copying 1 file to C:\Documents and Settings\mtac\.grails\1.0.3\projects\btdeneyim\resources [copy] Copying 1 file to C:\Documents and Settings\mtac\.grails\1.0.3\projects\btdeneyim Running Grails application.. 2008-07-13 00:11:52.714::INFO: Logging to STDERR via org.mortbay.log.StdErrLog 2008-07-13 00:11:52.054::INFO: jetty-6.1.4 2008-07-13 00:11:52.199::INFO: No Transaction manager found - if your webapp requires one, please configure one. 2008-07-13 00:11:53.810:/btdeneyim:INFO: Set web app root system property: 'btdeneyim-development-0.1' = [C:\java\grails-1.0.3\btdeneyim\web-app\] 2008-07-13 00:11:53.810:/btdeneyim:INFO: Initializing log4j from [file:C:\Documents and Settings\mtac/.grails/1.0.3/projects/btdeneyim/resources/log4j.properties] 2008-07-13 00:11:53.830:/btdeneyim:INFO: Initializing Spring root WebApplicationContext [0] spring.GrailsWebApplicationContext Refreshing org.codehaus.groovy.grails.commons.spring.GrailsWebApplicationContext@8fc7a7: display name [org.codehaus.groovy.grails.commons.spring.GrailsWebApplicationContext@8fc7a7]; startup date [Sun Jul 13 00:11:56 EEST 2008]; parent: org.springframework.web.context.support.XmlWebApplicationContext@b4b0a4 [0] spring.GrailsWebApplicationContext Bean factory for application context [org.codehaus.groovy.grails.commons.spring.GrailsWebApplicationContext@8fc7a7]: org.springframework.beans.factory.support.DefaultListableBeanFactory@404eb2 2008-07-13 00:11:59.742:/btdeneyim:INFO: Initializing Spring FrameworkServlet 'grails' 2008-07-13 00:11:59.923::INFO: Started SelectChannelConnector@0.0.0.0:8080 Server running. Browse to http://localhost:8080/btdeneyim
Evet uygulamanın Grails tarafından sunulan arayüzü geldi.