Accueil > Non classé > Grails – épisode 1 – Présentation

Grails – épisode 1 – Présentation

Introduction

Grails.org

http://grails.org

Lorsque j’ai abordé Grails pour la première fois, j’ai d’abord été franchement réticent.

En effet, comment ne pas se méfier d’un outil qui “génère tout” – du contrôleur à la vue en passant par les services. Comment aborder Groovy ? Comme un “nouveau langage” ? Est-ce vraiment utilisable dans un cadre professionnel ?

C’est bien connu, il n’y a que les imbéciles qui ne changent pas d’avis : j’ai décidé de tester ce framework.

Et j’ai été agréablement surpris (bluffé serait le mot exact) ! J’ai pu réaliser un bugtracker complet (avec suivi des tickets, export en PDF, Excel,  CSV, suivi des problématiques clients, une IHM Web2.0 (ajax), de la recherche full-text indéxée).

Tout cela en moins de 2 mois et seul sur le projet !

Tout au long de cette série d’article (il y en aura 5 au total), je vais vous faire part de mon expérience Grails. Nous allons commencer par une brève introduction aux grands principes de ce framework pour ensuite étudier un cas concret : une application de gestion d’albums musicaux. Nous allons faire évoluer cette application pour finalement aboutir à un logiciel fonctionnel (bien que relativement simple).

Mais commençons par le début…

Grails – Qu’est ce que c’est ?

Grails est un web-framework open-source dit “de développement rapide”. Il est basé sur des technologies éprouvées et très utilisées dans le monde professionnel Java/JEE comme Spring, Hibernate ou encore Sitemesh. Grails est bâti sur le langage Groovy.

Groovy

http://groovy.codehaus.org/

Groovy présente l’énorme avantage d’être entièrement compatible avec Java. Groovy s’exécute en fait directement dans une VM Java: le compilateur produit du byte-code Java. Les avantages ?

  • la réutilisation de code déjà existant est transparente (librairies, autres frameworks Java, business code, …)
  • un développeur Java apprend à utiliser Groovy en très peu de temps (en mixant du code Java et Groovy, l’apprentissage se fait en douceur)

En résumé, Grails nous promet un développement d’application web ultra rapide.

Ok ! On démarre ?

Maintenant que nous avons une vague idée de ce qu’est Grails et parce que la pratique remplacera toujours mille mots, installons et utilisons Grails pour la première fois. Pour pré-requis, assurez vous qu’une JVM est installée sur votre machine (récente de préférence).

Installation de Grails

  • Téléchargez le package sur le site officiel: http://grails.org/
  • Décompressez cette archive dans le répertoire de votre choix
  • Faites pointer une variable d’environnement GRAILS_HOME sur le répertoire d’installation
  • Testez l’installation
1
grails help

Création d’un projet

Lancez la commande

1
grails create-app ourapp

Grails va créer pour vous un dossier “ourapp” dans lequel un squelette d’application aura été généré. Même si cela n’a pas grand intérêt pour le moment, vous pouvez lancer le projet:

1
2
cd ourapp/
grails run-app

La commande “run-app” s’occupe:

  • de construire votre application
  • de lancer un conteneur dédié à votre application (Jetty dans la version Grails 1.1.x, Tomcat pour la future version 1.2)

Si le port par défaut (le classique 8080) ne vous convient pas, vous pouvez le changer:

1
grails -Dserver.port=9999 run-app

Utilisez votre navigateur favori : http://localhost:8080/ourapp/ (en remplaçant le numéro de port par celui que vous avez choisi)

Analyse du projet

Arborescence d'un projet Grails

Arborescence d'un projet Grails

Voilà notre squelette d’application en place. C’est bien… Mais comment les choses sont-elles organisées ? Jetons un coup d’œil dans le répertoire “ourapp”. Voici l’organisation d’un projet Grails:

La partie la plus importante de l’application se trouve dans le dossier grails-app. Dans ce dossier seront définis les services, les contrôleurs, les vues, la configuration, …

Le dossier test parle de lui-même tout comme pour web-app. Notez que c’est dans le dossier web-app que le répertoire WEB-INF se situe.

Le dossier lib contiendra toutes les dépendances (JAR). Ces dépendances peuvent être copiées manuellement ou récupérées via un gestionnaire de dépendances (Maven ou Ivy). Ce genre de gestionnaire n’est pas intégré par défaut dans Grails (nous verrons plus tard que cette carence peut être très rapidement corrigée grâce au système de plugins).

Le dossier src pourra contenir toutes vos classes supplémentaires, qu’elles soient Groovy ou Java.

Voilà donc une des premières force de Grails mise en évidence (même si elle n’est absolument pas spécifique à Grails): l’organisation est dite COC (Convention Over Configuration). Inutile de chercher telle ou telle partie de code, par convention, vous savez qu’elles sont à un endroit bien défini.

La suite au prochain numéro !!

Voila les premières bases (légères je vous l’accorde) posées. Dans le prochain épisode, nous allons aborder le coté pratique d’un point de vue très concret puisque l’objectif sera d’écrire une application complète et fonctionnelle visant à gérer une collection d’albums musicaux.

Ressources

Site officiel de Grails : http://grails.org/
Le tag sur le SVN Google Code: http://excilys.googlecode.com/svn/projects/grails-albums/tags/grails-albums_article_1/

Share
  1. Pierre-Yves RICAU
    14/12/2009 à 10:27 | #1

    Un premier article bien rédigé qui présage d’une suite intéressante !

    Aura t’on le plaisir de pouvoir tester l’application sur Google App Engine ?

  2. Alexis THOMAS
    23/12/2009 à 10:23 | #2

    Après l’ajout de GRAILS_HOME, il faut aussi modifier le PATH (“%GRAILS_HOME%\bin on Windows or $GRAILS_HOME/bin on Unix”).

  3. Cyril BROUILLARD
    23/12/2009 à 20:26 | #3

    Ah oui en effet ^^ c’est un oubli de ma part ! Merci !

  4. NAFIA
    31/01/2014 à 00:17 | #4

    Agréable début en Grails .
    Personnellement je viens de basculer de JavaJEE vers le monde de grails groovy suite une refonte de l’app back de notre entreprise en remplacement la partie UI de grails (GSP) par angularJS ??? et ca fait pas plus qu’un mois.

  5. NAAMA
    31/01/2014 à 00:18 | #5

    Agréable début en Grails .
    Personnellement je viens de basculer de JavaJEE vers le monde de grails groovy suite une refonte de l’app back de notre entreprise en remplacement la partie UI de grails (GSP) par angularJS ??? et ca fait pas plus qu’un mois..

  1. 14/12/2009 à 09:28 | #1
  2. 05/12/2010 à 21:44 | #2
  3. 07/04/2015 à 07:32 | #3
  4. 18/12/2015 à 11:49 | #4
  5. 20/09/2016 à 08:26 | #5