Frage

Kompiliert IntelliJ ständig, da es mir mit roten, schnörkeligen Linien anzeigt, wenn ein Fehler vorliegt?(zusätzlich zu den Autovervollständigungsfunktionen) Oder führt es eine Art Pseudokompilierung durch?

Wenn es eine legitime Kompilierung durchführt, wo werden diese kompilierten Klassen abgelegt?Ich möchte mein JRebel auf dieses Verzeichnis verweisen, anstatt auf die einzelnen Modulzielordner.

War es hilfreich?

Lösung

Meo hat Recht. Nach dem, was ich bei der Entwicklung von Plugins für benutzerdefinierte Sprachen gelernt habe, kompiliert IntelliJ nichts, bis Sie Ihr Projekt explizit erstellen.Während Sie tippen, erkennt der Lexer/Parser ungültige Token oder Codekonstrukte.In der Zwischenzeit wird ein Index aller Klassen und Methoden in Ihrem Projekt und ihrer Abhängigkeiten sowie deren Signatur usw. verwaltet.

Nachdem Sie mit der Eingabe aufgehört haben, sehen Sie oben im rechten Randbereich ein kleines farbiges Auge.Es zeigt an, dass die IDE „Annotatoren“ und „Codeinspektionen“ ausführt.Sie können anhand des aktuellen Index und des aktuellen Status Ihrer Datei (Importe, Deklarationen usw.) feststellen, ob Klassen, Methoden und Variablen gültig sind oder nicht.Das Gleiche gilt für nicht verwendete Variablen, ungültige Parameter in Methodenaufrufen usw.

Vorteile:

  • Annotatoren arbeiten direkt an einem sogenannten PSI-Baum, bei dem es sich im Grunde um einen erweiterten AST handelt, der Ihre aktuelle Datei darstellt
  • Es ist möglicherweise schneller als das Kompilieren jedes Mal (es verwendet einen Index und muss nicht jede abhängige Klasse neu kompilieren).
  • Annotatoren können Dinge erkennen javac egal sind, wie z. B. potenzielle Fehler (z. B.verwenden = anstatt == in einem while Zustand)

Nachteile:

  • Das ist eine Menge Arbeit, im Grunde müssen sie die Logik neu schreiben, um jeden Fehler zu finden javac produzieren kann (weshalb Sie auf ihrem Bugtracker viele Probleme mit der Bezeichnung „Guter Code ist rot„ oder „schlechter Code ist grün“, was bedeutet, dass es einen Unterschied zwischen dem, was sie erkennen, und dem, was der Compiler ausgeben würde, gibt)

TL;DR:es produziert keine .class Bis Sie Ihr Projekt fertigstellen, wird alles „von Hand“ gemacht.

Andere Tipps

Für jedes Modul kann der Compiler-Ausgaberad in -Moduleinstellungen in paths gefunden werden. Jreebel-Plugin generiert REBEL.XML automatisch und leitet den Verzeichnispfad von -Moduleinstellungen ab, sodass Sie nicht manuell auf die Standorte hinweisen müssen - generieren Sie einfach Rebel.xml mit dem IDE-Plugin: Klicken Sie mit der rechten Maustaste auf Modul inDie Projektansicht -> Jrebel -> REBEL.XML generieren

intellij versteht den Code, es muss den Code nicht kompilieren, um zu wissen, was falsch ist.

Um nur hinzuzufügen, werden die Klassen nach der Kompilierung im Verzeichnis generas gespeichert, wenn er ein MAVEN-Projekt ist - Andernfalls wird das Verzeichnis in der Projektstruktur von Intellij angegeben, in "Projekt-Compiler-Ausgabe":

 Geben Sie hier eingeben Beschreibung hier eingeben

Ich habe meine .klasse-Dateien gefunden, indem ich aus dem Heimverzeichnis des Projekts aus den Aus- / Produktions- / Hauptordnern gehe.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top