Intellij erkennt den von Antlr erzeugten Quellcode nicht

8

Ich habe Probleme, Intellij den generierten Quellcode von antlr4 zu erkennen. Jeder Verweis auf den generierten Code wird als Fehler angezeigt, die Codevervollständigung funktioniert nicht, usw.

Ich verwende maven und das antlr4-maven-plugin, um den Code zu generieren. Mein Code, der auf den generierten Code verweist, kompiliert und baut unter maven gut auf. Der generierte Code befindet sich unter / target / generated-sources / antlr4, was Intellij erwartet.

Ich habe die üblichen Fixes wie Reimport Maven-Projekte, Update-Ordner, Cache ungültig, etc. versucht. Nichts davon scheint zu funktionieren.

Wer hat das schon mal gesehen? Gibt es eine Möglichkeit, auf die generierten Quellen direkt in Intellij zu zeigen?

    
oillio 17.09.2014, 23:51
quelle

6 Antworten

2

Ich hatte, was ich denke, ein ähnliches Problem. Ich bin neu bei IntelliJ, also vermute ich etwas.

Ist der gen-Ordner in Ihrem Projekt braun (d. h. eine Ressource) oder blau (Quellcode)?

Ich konnte mein Projekt nicht dazu bringen, den generierten Code zu erkennen, bis ich den gen-Ordner als einen Quellcode registriert hatte, der den Quellcode enthielt.

Tut mir leid zu sagen, dass Sie vielleicht damit herumspielen müssen - ich kann mich nicht erinnern, wie ich es gemacht habe - aber alles war gut, nachdem ich das geändert habe.

    
v0rl0n 14.10.2014, 16:09
quelle
4

Es stellt sich heraus, dass mein Problem mit den Vorlieben dieses Problem verursacht hat. Wenn jemand anderes dieses Problem hat:

Stellen Sie als v0rl0n zuerst sicher, dass der gen-Ordner als Quelle aufgeführt ist. Gehe zu Moduleinstellungen - & gt; Module - & gt; Quellen .
Schaue nach rechts für die blauen Quellordner . Stellen Sie sicher, dass Ihre generierten Quellordner aufgelistet sind (sie sollten ein [generiert] -Flag in der Zeile haben).

Wenn Ihr generiertes Quellverzeichnis dort aufgeführt ist und immer noch nicht erkannt wird, gehen Sie zu Einstellungen - & gt; Dateitypen Suchen Sie im Feld Dateien und Ordner ignorieren . Stellen Sie sicher, dass Sie nichts aufgelistet haben, das mit Ihrem generierten Quellenverzeichnis übereinstimmt.

In meinem Fall hatte ich target zu dieser Liste hinzugefügt, was mein Problem verursacht hat und es war wirklich schwer zu finden.

    
oillio 15.10.2014 18:32
quelle
4

Das Problem

target/generated-sources/antlr4 ist nicht automatisch als Quellverzeichnis gekennzeichnet, sondern sein direktes Unterverzeichnis com.example ist. Intellij Idea erkennt das richtige Paket für Klassen in target/generated-sources/antlr4/com.example nicht.

Die Ursache

Die Quelldatei *.g4 ist in src/main/antlr4/com.example , aber eigentlich sollte sie src/main/antlr4/com/example sein. Beachten Sie die / . Sie haben wahrscheinlich vergessen, src/main/antlr4 als Quellverzeichnis in Idea zu markieren, und wenn Sie gedacht haben, dass Sie eine Paketstruktur erstellen, haben Sie tatsächlich nur ein einzelnes Verzeichnis namens com.example erstellt.

Der Fehler

Markieren Sie src/main/antlr4 als Quellverzeichnis, erstellen Sie die richtige Verzeichnisstruktur src/main/antlr4/com/example . Neu erstellen.

Alternative Lösung

Gehen Sie zu Projektstruktur - Module - Quellordner und suchen Sie target/generated-sources/antlr4/com.example - klicken Sie auf Eigenschaften bearbeiten und setzen Sie Paketpräfix auf com.example .

Anderes aber verwandtes Problem hier

    
Vlastimil Ovčáčík 11.03.2016 18:02
quelle
2

Schritte, die für mich funktionierten:

  1. Öffnen Sie Maven-Projekte auf der rechten Registerkarte
  2. Klicken Sie mit der rechten Maustaste auf das Modul, das meinen antlr-Code enthielt
  3. Klicken Sie auf Quelle generieren und Ordner aktualisieren
samuraiseoul 21.10.2014 23:05
quelle
0

Ich hatte ein ähnliches Problem. Intellij hat meinen generierten Code im Ordner java , aber nicht in einem Unterordner von java gefunden. Ich habe es gelöst, indem ich meine Grammatikdateien (* .g4) in ein Paket (com.test) eingefügt habe:

%Vor%     
spilymp 11.01.2016 11:58
quelle
0

Der einfachste Weg zur Lösung dieses Problems besteht darin, mit der rechten Maustaste auf das Verzeichnis gen zu klicken und Mark Directory as -> Sources Root

zu wählen

    
isapir 13.11.2016 21:06
quelle

Tags und Links