Groovy, Netbeans und Java EE

8

Ich möchte eine Webanwendung (keine Frameworks) entwickeln, die Java mit groovy mischt. Ich benutze die IDE Netbeans mit dem Plugin.

Wenn ich ein neues Java SE-Projekt starte und eine Groovy-Klasse hinzufüge, funktioniert es problemlos. Aber wenn ich ein neues Java-EE-Projekt erstelle und eine groovige Klasse hinzufüge, kann es nicht kompilieren und zeigt mir den folgenden Fehler:

%Vor%

Hat jemand eine Ahnung, wie ich Java EE + Groovy in Netbeans aktivieren kann?

ps: Ich kenne die Existenz von Grails

ps2: Das Groovy-Glas ist in meinem Klassenpfad.

Danke für alles!

    
José Leal 06.01.2009, 11:03
quelle

2 Antworten

5

Es scheint, dass der Java Webapp-Projektmanager von NetBeans 6.5 nicht über die Unterstützung von "Groovy aktivieren" verfügt, die in den Java-App- und Java-Klassenbibliotheksprojekten vorhanden ist.

Ich kann mir zwei Möglichkeiten vorstellen, wie Sie das umgehen könnten:

Erstens könnten Sie Ihren Groovy-Code und Ihre Tests in einem separaten Projekt als Java-Klassenbibliothek ablegen. Machen Sie die Java-Webanwendung dann abhängig vom Groovy-Projekt. NetBeans wird das abhängige Projekt automatisch erstellen, so dass Sie kaum merken werden, dass es sich um separate Projekte handelt.

Zweitens ist das "Enable Groovy" keine Magie. Sie müssen nur eine groovy-build.xml in / nbprojects schreiben und build-impl.xml ändern, um sie zu importieren. Die groovy-build.xml überschreibt das Standardmakro "javac", um stattdessen "groovyc" aufzurufen. Wenn Sie mit Ant praktisch sind, können Sie eine groovy-build.xml aus einem Java-Anwendungsprojekt kopieren und in Ihr Java Web-Projekt kopieren und dann von Ihrer build.xml importieren (bevor build-impl.xml importiert wird) ). Die groovy-build.xml würde wahrscheinlich ein paar Verbesserungen benötigen, da einige der Eigenschaften zwischen einer webapp und einer Klassenbibliothek etwas anders sind.

    
Dave Smith 06.01.2009 22:45
quelle
5

@Dave Smith,

Genau das habe ich getan. Ich habe ein Javase-Projekt und eine Webapp erstellt und angefangen, sie zu vergleichen. Nach ein paar Minuten wurde mir klar, dass der einzige Unterschied die groovy-build.xml war.

Also habe ich die groovy-build.xml in das Verzeichnis kopiert und die folgenden Zeilen in meine build.xml eingefügt:

%Vor%

Direkt vor dem regulären

%Vor%

Und dann die groovy-Datei aufgerufen, um das -init-macodef-javac zu überschreiben.

%Vor%

Ich musste auch den Namespace von groovy-build.xml zu meinem ex ändern:

%Vor%

Und fügte den j2ee-Klassenpfad ($ {j2ee.platform.classpath}) einige Zeilen später in das Attribut ein:

%Vor%

Danach hat das Projekt erfolgreich funktioniert! = D

Danke für alles!

    
José Leal 08.01.2009 11:07
quelle

Tags und Links