IntelliJ kann keine Verbindung zu einem eigenen Scala-Kompilierungsserver herstellen

8

Ich verwende die neueste IntelliJ IDEA (2016.1.1) - , aber ich habe dieses Verhalten auch in früheren Versionen gesehen - in Scala mit dem neuesten Scala-Plugin (3.0.3) entwickelt.

Wenn ich versuche, einen Test oder Code auszuführen / zu debuggen, beginnt IDEA mit der Erstellung des Projekts, bleibt dann aber einige Sekunden dort, während der Fortschrittsbalken "Make" überhaupt nicht fortschreitet.

Nach 20-30 Sekunden erscheint die folgende Nachricht auf der Registerkarte Nachrichten:

  

Warnung: scala: Verbindung zum Kompilierserver kann nicht hergestellt werden   localhost / 127.0.0.1: 59656 Versuch, ohne es zu kompilieren

Der dort gezeigte Port 59656 ist ein Port, den ich selbst in %USER_PROFILE%\.IntelliJIdea2016.1\config\options\scala.xml hartcodiert habe, nachdem ich dieses Problem das erste Mal am Standard-Port bemerkt habe. Das Ändern des Ports hat also nicht geholfen ...

An dieser Stelle wird in der Leiste für mehrere zehn Sekunden "Compilierungseinstellungen lesen" angezeigt, bevor der Code tatsächlich ausgeführt wird. Es ist furchtbar lästig und ich kann es anscheinend nicht endgültig beheben. Dies kann bis zu drei Minuten dauern, um einen einzelnen Test durchzuführen. Sehr störend. Ich habe festgestellt, dass dieses Problem zeitweise auf meiner Arbeitsmaschine (Win7) auftritt.

Jeder hat eine Idee, wie Sie dieses Problem beheben / beheben können?

Danke

    
mdm 29.04.2016, 08:59
quelle

3 Antworten

2

Ich verstehe das noch nicht vollständig, aber unter Einstellungen, Sprachen & amp; Frameworks & gt; Scalac Server gibt es einige Einstellungen, die helfen könnten:

  • Server herunterfahren, wenn er für & lt; number & gt; Minuten.
  • Projekt home als Arbeitsverzeichnis des Compiler-Servers verwenden (Der Compile-Server wird bei jeder Kompilierung eines neuen Projekts neu gestartet)
  • JVM SDK wird verwendet, um Kompilierungsserver zu instanziieren ... (wenn JVM SDK und Modul-SDK übereinstimmen).

Es gibt ein kleines Symbol unten rechts im IntelliJ-Fenster, das anzeigt, ob der Kompilierungsserver läuft und zum Stoppen und Starten verwendet werden kann.

Der Server wird heruntergefahren, wenn er inaktiv ist. Es sollte normalerweise bei Bedarf gestartet werden, aber dies kann nicht passieren, wenn das JVM-SDK nicht mit dem Modul-SDK übereinstimmt. Das Erhöhen des Leerlaufzeitlimits sollte helfen, die Häufigkeit des Problems zu verringern. Der Abgleich des JVM-SDK mit dem Modul-SDK sollte das Problem beheben, ist jedoch möglicherweise nicht möglich, wenn mehrere Projekte unterschiedliche SDKs verwenden.

Wenn Sie häufig zwischen Projekten wechseln, können Sie das Home-Projekt des Compiler-Servers als Arbeitsverzeichnis verwenden.

Bearbeiten

Ich habe dieses Problem erneut mit IntelliJ IDEA Ultimate 2016.3.2, aber die übliche Methode eines sauberen Herunterfahrens und Neustarts hat nicht funktioniert. Ich habe einige Informationen zusammengestellt, wie der Kompilierserver funktioniert, und es scheint mir, dass IntelliJ auf dem falschen Port für den Kompilierserver sucht. Wenn ich eine Marke manuell erzwinge, kann ich einen Kompilierungsserver sehen, der ausgeführt wird, aber es ist nicht derjenige, nach dem IntelliJ sucht. Ich habe immer noch keine Lösung, aber diese Information könnte uns näher bringen.

Suchen nach Dateien

Der erste Schritt besteht darin, herauszufinden, wo IntelliJ seine Konfigurations- und Protokolldateien speichert. Diese Informationen werden derzeit hier veröffentlicht: IntelliJ-Verzeichnisse

Auf meinem Mac bedeutet das:

  • Konfigurationsdateien: ~ / Library / Preferences / IntelliJIdea2016.3 / options
  • Protokolldateien: ~ / Library / Logs / IntelliJIdea2016.3

Der Kompilierungsserver

Der Kompilierungsserver ist ein Java-Prozess mit einer sehr langen Befehlszeile, die folgendermaßen endet:

%Vor%

Die Konfigurationsoptionen sind in ~ / Library / Preferences / IntelliJIdea2016.3 / options / scala.xml

gespeichert

Einige davon sind in den Einstellungen konfiguriert - & gt; Sprachen & amp; Frameworks - & gt; Scala Compiler Server-Dialog, aber andere Einstellungen können durch Bearbeiten der Datei hinzugefügt werden. Meine sieht momentan so aus:

%Vor%

Ich habe die Option COMPILER_SERVER_PORT von Hand hinzugefügt, aber mit dieser Version von IntelliJ hat der Kompilierungsserver, der für einzelne Kompilierungen verwendet wird, einen anderen Port und eine andere ID. Leider verwendet dieser Prozess einen anderen Port, wenn ich COMPILER_SERVER_PORT ändere und IntelliJ neu starte, also denke ich, dass dies zwei getrennte Instanzen sind.

Ich habe diesen Befehl verwendet, um den Kompilierserverprozess zu finden, nachdem ich einen Kompiliervorgang manuell gestartet habe:

%Vor%

Dieser Befehl findet die von IntelliJ verwendeten Ports:

%Vor%

Hier gibt es auch eine Protokolldatei:

%Vor%

zeigt an, dass etwas nicht stimmt:

%Vor%

CompileServerLauncher.scala zeigt an, dass dies damit zu tun hat, dass ein JDK 8 nicht verwendet werden kann. Wenn es jedoch keinen finden kann, sieht es so aus, als ob es mit einer Fehlermeldung und nicht mit einer NullPointerException fehlschlagen sollte.

    
richj 03.06.2016 10:47
quelle
0

Ich hatte das gleiche Problem. Ich benutze IntelliJ 2017.3. Spiel-Framework 2.6. Stb 0.13.15. Gelöst durch das Hinzufügen von -server -Xss1m in den JVM-Parametern des scala compile servers:

    
Robert Gabriel 15.01.2018 05:10
quelle
0

Ich hatte das gleiche Problem und es wurde durch widersprüchliche Einstellungsdateien zwischen dem Einstellungs-Repository und den lokalen Einstellungen verursacht. Die Einstellungen Ihres Kompilierungsservers werden in Ihrem IDEA-Einstellungsverzeichnis in einer Datei namens scala.xml gespeichert.

Wenn Sie "settings sync" verwenden, z. B. ein Online-Repository, um Ihre IDEA-Einstellungen zu synchronisieren, stellen Sie sicher, dass Sie nur eine one scala.xml config-Datei haben. Gehe zu deinem Library/Preferences/<IDEA-Dir>/ und entferne diese Datei von den Verzeichnissen options und settingsRepository . Dies wird auf "Werkseinstellungen" zurückgesetzt.

Starten Sie IntelliJ neu, richten Sie den Kompilierserver erneut ein. Es sollte jetzt nur eine Datei in das Verzeichnis settingsRepository mit einer neuen ID und Portzuweisung für den Compilerserver schreiben.

Das hat es für mich repariert.

    
Matthias 24.01.2018 15:56
quelle