In meinem Maven-Projekt mische ich gerade meinen Java-Code mit etwas Groovy-Code. Ich benutze Groovy hauptsächlich, um die Bohnen an dieser Stelle zu konstruieren. Ein Teil meines Java-Codes verwendet die Groovy-Beans direkt.
Ich habe das Maven Compiler Plugin wie folgt konfiguriert: -
%Vor% Wenn ich meine Testfälle mit mvn test
ausfühle, funktioniert es gut.
Wenn ich jedoch die Testfälle direkt von IntelliJ aus starte, indem ich mit der rechten Maustaste auf die Testdatei klicke und sie ausführe, erhalte ich auf den Groovy-Beans die Fehlermeldung "Kann kein Symbol finden". Wenn ich das Fehlerprotokoll lese, benutzt IntelliJ den Java-Compiler, um mein Projekt zu kompilieren, bevor ich den Test ausführe ... daher schlagen die Tests fehl.
Ich kann anscheinend nicht herausfinden, wie man IntelliJ anweist, immer den Groovy-Compiler anstelle des Java-Compilers zu verwenden.
Was soll ich unter SDK ändern, damit der Groovy-Compiler verwendet wird? Ich habe versucht, Groovy verwandte JAR-Dateien hinzuzufügen, aber ich habe andere Fehler.
UPDATE 1: Per @Seagull-Vorschlag
Ich habe groovy JARs unter "Global Libraries" hinzugefügt: -
Wenn ich die Testdatei direkt von IntelliJ aus ausgeführt habe, erhalte ich einige Groovy-Warnungen und bekomme immer noch denselben Fehler: -
Danke.
Dies ist die Antwort des IntelliJ-Supportteams vom 2. Januar 2014 zu diesem Problem: -
IDEA verwendet groovyc, um Java-Stubs für Groovy-Klassen zu generieren für nahtlose Interop. Leider funktioniert der Stub-Generierungscode nicht Starten Sie AST-Transformationen (z. B. unveränderbar) und so die Methoden generiert von diesen Transformationen nicht in Java-Stubs, daher sieht der Java-Compiler sie nicht.
Leider sehe ich keine Problemumgehungen, die Sie nicht ändern müssen Projekt. Eine wäre, Groovy-Dateien in ein separates Modul zu platzieren. Ein anderes wäre, die Anrufplätze in Groovy zu ändern. Der dritte wäre @Immutable durch @Canonical zu ersetzen und das zu generieren Konstruktor, so dass es tatsächlich im Code ist (und die Stubs werden enthält es).
Sie können auch Ссылка wählen / sehen um Eclipse Groovy Compiler zu unterstützen.
Am Ende habe ich sowohl @Immutable
als auch @Canonical
entfernt und aus zwei Gründen eigene Konstruktoren erstellt: -
@Immutable
und @Canonical
kostenlos zur Verfügung gestellt werden, erheblich ist. Ich hatte dieses Problem bei der neuesten Version von Intellij ideaIC-15.0.3-custom-jdk-bundled.dmg auf MAC 10.10.5 , JDK 1.8.0_60 .
Einschließlich aller Schritte für die Nachwelt ...
groovy
mit sdkman installiert: sdk install groovy 2.4.5
groovy 2.4.5
hinzu (wenn es nicht bereits hinzugefügt wurde). !?*.java;!?*.groovy
in !?*.groovy;!?*.java
Tags und Links java maven intellij-idea groovy