Showing posts with label gwt-maven-plugin. Show all posts
Showing posts with label gwt-maven-plugin. Show all posts

Friday, 23 November 2012

Einbindung von Source eines Submoduls für GWT/Maven

GWT 2.5.0
gwt-maven-plugin 2.5.0
Maven 3.0.3

Bei einem mehrmoduligen GWT/Maven Projekts ist das Model oft in einem anderen Modul als im eigentlichen GWT Modul (web Modul). Für das gwt-maven-plugin werden auf der Homepage 2 Möglichkeiten vorgeschlagen das zu lösen:

http://mojo.codehaus.org/gwt-maven-plugin/user-guide/project.html

Erster Vorschlag das Goal gwt:resources hinzuzufügen funktioniert ausgezeichnet, allerdings möchte man das Problem manchmal nicht über zusätzliche Commandline Befehle lösen sondern über die pom Konfiguration. Hier wird vorgeschlagen das ganze über das Attribut compileSourcesArtifacts zu lösen, das funktioniert aus mir nicht ganz erklärlichen Gründen nicht.

Meine Lösung war dann genau wie vorgeschlagen das zusätzliche gwt.xml im Submodul anzulegen:


  
  


 und dieses im gwt.xml des GWT Moduls zu mit "inherits" einzubinden.


Damit funktioniert das Ganze leider noch nicht, im pom.xml des Moduls, wovon das Model eingebunden werden soll muß man noch folgendes eintragen:

 
  
   
    src/main/java
    
     **/*.java
    
   
   
    src/main/resources
    
     **/*.xml
    
   
  
 



Friday, 31 August 2012

GWT, Maven und Eclipse: Build Failure weil die Klasse mit dem Entry Point nicht gefunden wird

Ecplise: Indigo Service Release 2
Maven 3.0.3
Google Plugin 3.1.0
GWT SDK 2.4.0
m2e Plugin 1.0.200


Wer GWT mit Maven und Eclipse verwenden möchte braucht manchmal ein dickes Fell.



[INFO] Compiling module myCompany.client.Frontend
[INFO]    Finding entry point classes
[INFO]       [ERROR] Unable to find type ' myCompany.client.Frontend '
[INFO]          [ERROR] Hint: Previous compiler errors may have made this type unavailable
[INFO]          [ERROR] Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly
[INFO] ------------------------------------------------------------------------


Die Klasse existiert aber und es tritt auch kein Compile Fehler auf. Des Rätsels Lösung war der Ablageort des Frontend.gwt.xml. Wie bei Maven üblich wurde es in src/main/resources untergebracht und dort unter myCompany/client. Das mag aber nun das gwt-maven-plugin gar nicht und wirft den obigen Fehler aus. Verschiebt man das gwt.xml nun einen Folder runter in den Folder myCompany geht plötzlich der Build durch.

Thursday, 17 May 2012

GWT, Eclipse und Maven - Ein Skeleton Projekt anlegen

Maven 3.0.3
Eclipse Java EE IDE for Web Developers Indigo Service Release 2 20120216-1857
gwt-maven-plugin 2.4.0
build-helper-plugin 1.7
m2e - Maven Integration for Eclipse 1.0.200.20111228-1245
Google Plugin for Eclipse 3.7 2.6.1v20205091048-rel-r37

Will man mit dem org.codehaus.mojo.gwt-maven-plugin Archetype ein Skeleton GWT Projekt erzeugen kann das ein ziemlicher Task sein. Irgendwie hab ich das trotzdem hinbekommen, es gibt sicher andere und wahrscheinlich auch bessere Wege, aber ich beschreibe mal wie ich vorgegangen bin.

Zuallererst: Das m2eclipse Plugin von Sonatype muß deaktiviert oder deinstalliert werden, es ist meiner Meinung nach einer der Hauptgründe warum es so schwierig ist das Ganze hinzubekommen.

Dann ein neues Maven Projekt anlegen und den Archetype gwt-maven-plugin  verwenden:



Danach füge ich im pom.xml mit dem build-helper-maven-plugin den zu generierenden Code zum Sourcepath hinzu (m2eclipse ignoriert das einfach, einer der Gründe, warum es raus mußte). Beim Probelauf für diesen Blogeintrag hatte das Projekt danach trotz deaktivierten m2e eine Maven Nature (am hinzugefügten M erkenntbar). Diese habe ich einfach deaktiviert, dann muckste m2e auch wirklich nicht mehr auf (Rechter Mausklick aufs Projekt -> Maven -> Disable Maven Nature).




 org.codehaus.mojo
 build-helper-maven-plugin
 1.7
 
  
   add-source
   generate-sources
   
    add-source
   
   
    
     ${project.build.directory}/generated-sources/gwt
    
   
  
 


Dann baue ich mir einen Launcher für das externe Maven und lasse das Ganze mal mit dem Goal install laufen:


Der Lauf geht inklusive Tests durch, auch die generierten Sourcen sind eingebunden, sieht einmal sauber aus.
Nun probiere ich das Ganze auch mal mit den Mavengoals clean gwt:run laufen zu lassen und siehe da, es funkt:

Auch im Browser sieht das sauber aus:

Im Prinzip nicht viel zu tun, es hat allerdings schon seine Zeit gebraucht bis ich mich durchgerungen habe das an sich tolle m2eclipse Plugin zu deaktivieren.

Am Ende noch der Projektbaum, wie er aussieht wenn alles gut gegangen ist:



Links:
Homepage gwt-maven-plugin
GWT Working with Maven