Migration von Grails 2 nach Grails 3

Mein bevorzugtes Webframework Grails wurde in der Version 3 mit einem neuen Unterbau versorgt. Es basiert jetzt auf dem Buildsystem Gradle und Spring Boot.
Doch was muss man bei der Migration von Grails 2 Applikationen beachten? Michael Plöd hat auf der Groovy und Grails eXchange 2015 einen Vortrag zu diesem Thema gehalten.

Ich möchte seine Empfehlungen an dieser Stelle kurz zusammenfassen und meine Erfahrungen schildern.

  • Warten bis die wichtigsten Plugins migriert sind. Alle Grails 3 Plugins befinden sich jetzt auf bintray.com
    • warten gehört nicht zu meinen Stärken und so musste ich diese Lektion auf die schmerzhafte Art lernen. Es hat mich viel Zeit und Nerven gekostet die nach der Veröffentlichung von Grails 3 noch nicht migrierten Plugins spring-security-core und spring-security-ldap zu integrieren. Kurz nachdem ich dieses Tal der Schmerzen durchschritten hatte, wurden beide Plugins migriert.
  • Dateien und Verzeichnisse liegen an anderen Orten
    • es dauert bis man sich an die neue Struktur gewöhnt hat, besonders die Umstellung auf die YAML basierte Konfiguration grails-app/conf/application.yml.Diese ist allerdings optional und kann in einem ersten Schritt in der bekannten Groovy Notation in der Datei  grails-app/conf/application.groovy vorgenommen werden.

  • Logback wird als neues logging framework genutzt
    • Das Logging wird jetzt ausschließlich in der Datei grails-app/conf/logback.groovy konfiguriert.
  • before und after interceptors wurden entfernt
    • Interceptors habe ich bis jetzt nicht verwendet, sie können aber durch standalone interceptors ersetzt werden
  • führe die Migration nicht in der Grails 2 Applikation durch
    • Diese Empfehlung kann ich nur bestätigen. Stattdessen sollte man mit einer neuen Grails 3 Applikation grails create-app --profile=web starten und dann src, grails-app und test nacheinander in diese übernehmen. Danach sollten die BuildConfig, die URLMappings, die Config, die DataSources, der BootStrap und die Log Konfiguration in die neue Struktur überführt werden
    • folgende Dateien und Verzeichnisse werden nach der Migration nicht mehr benötigt und können dann aufgeräumt werden:
    grails-app/conf/DataSource.groovy
    lib
    web-app/WEB-INF/applicationContext.xml
    src/templates/war/web.xml
    web-app/WEB-INF/sitemash.xml
    web-app/WEB-INF/tld
  • nach jeder Migration sollte natürlich ausführlich getestet werden
  • update auf eine neue Grails 3 Minor Version
    • Änderung der Version in grade.properties
    • dann aufräumen und neu kompilieren grails clean, grails compile
  • Grails 3 wird leider nicht mehr durch die Eclipse basierte Entwicklungsumgebung GGTS unterstützt

2 Kommentare

  1. […] Migration von Grails 2 nach Grails 3 (German) (Gero Klinkmann) […]

  2. […] man eine Grails 2 Anwendung nach Grails 3 portiert habe ich im letzten Post beschrieben. Aber darüber reden kann man viel, besser ist ein Beispiel.Dafür muss immer meine […]

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: