GWT und Drools … und ein doppeltes JDT


Quelle : http://twww.jboss.org/

Manchmal sind zuviele Frameworks in einer Anwendung eben doch zu viel 🙁 Das letzte Update unserer Drools-Version brachte auf den ersten Blick nur Gutes: Version 5.1.1 bringt ja schon ein paar nette Neuerungen und auch die Produktiv-Projekte liefen ohne Probleme durch. Aber nachdem ich einen kleinen Bug in einem Support-Projekt gefixt und committed hatte, lief der Build des Support-Projekts in einen Fehler : java.lang.NoSuchFieldError: warningThreshold 🙁 Verdammt… Eigentlich waren meine Änderungen gar nicht soooo groß, und die Meldung hatte nun absolut nichts damit zu tun. Nach ein paar Google-Versuchen fielen mir dann auch einige Tickets in die HĂ€nde ( link ) in denen das grundsĂ€tzliche Problem beschrieben wird. Dann fiel mir auch wieder das Drools-Update in einem völlig anderen Projekt ein, dass aber aber durch die Dependency-Hölle von Maven auch in meinem Projekt referenziert wurde. Scheinbar gibt es einen Dependency-Konflikt zwischen dem JDT, das von Drools referenziert wird und dem „eingebauten“ JDT im GWT-Compiler. Die Lösung letztlich war, die Drools-Dependency via Maven-Konfiguration in den Scope „runtime“ und die gwt-dev-Dependency in den scope „compile“ zu bringen. Damit stehen sich dann die JDT-Versionen nicht mehr im Weg.

Ganz nebenbei muss ich vielleicht noch anmerken, dass beim Kompilieren eines GWT-Projekts die Client-Seite mit dem GWT-Compiler (gwt-dev) und die Server-Seite mit dem regulĂ€ren Java-Compiler ĂŒbersetzt wird. Drools-Regeln werden lediglich zur Laufzeit kompiliert.