Deaktivieren Sie den Prozess zum Erstellen von Arbeitsbereichen in Eclipse


87

Was macht Eclipse, wenn der Prozess zum Erstellen eines Arbeitsbereichs ausgeführt wird? Kann ich es deaktivieren, weil es lange dauert und ich nicht weiß, ob es notwendig ist. Danke dir


12
Was genau ist das Erstellen eines Arbeitsbereichs?
Super Cat

15
Ich würde gerne wissen, warum dieser Prozess Sie daran hindern muss, etwas anderes in Eclipse zu tun.
Tony Topper

Antworten:


102

Beim Erstellen eines Arbeitsbereichs geht es um die schrittweise Erstellung einer Entwicklung, die in einem der geöffneten Projekte im aktuell verwendeten Arbeitsbereich festgestellt wurde.

Sie können es auch über das Menü " Project / Build automatically" deaktivieren .

Aber ich würde empfehlen, zuerst zu überprüfen:

  • Wenn ein Projekt Clean all / Build zu der gleichen langen Wartezeit führt (nach Deaktivierung dieser Option)
  • Wenn Sie (diesmal mit automatisch aktiviertem Build) einige Validierungsoptionen haben, können Sie diese deaktivieren, um festzustellen, ob sie einen Einfluss auf die globale Kompilierungszeit haben ( Preferences / Validationsoder Preferences / XML / ...ob Sie WTP installiert haben).
  • Wenn eine neue Eclipse-Installation, die auf denselben Arbeitsbereich verweist ( weitere Informationen finden Sie in dieser eclipse.ini ), zu demselben Problem führt (wobei das Erstellen automatisch aktiviert wird).

Beachten Sie, dass es bei Fehler 329657 (2011 geöffnet, 2014 in Bearbeitung) darum geht , einen (zu langen) Build zu unterbrechen , anstatt ihn abzubrechen :

Es gibt einen wichtigen Unterschied zwischen Build-Interrupt und Abbrechen.

  • Wenn ein Build abgebrochen wird, wird dies normalerweise behandelt, indem der inkrementelle Build-Status verworfen wird und der nächste Build eine vollständige Neuerstellung ist. Dies kann in einigen Projekten recht teuer sein.
    Als Benutzer würde ich lieber warten, bis der inkrementelle 5-Sekunden-Build abgeschlossen ist, als abzubrechen und anschließend einen 30-Sekunden-Neuaufbau durchzuführen.

  • Die Idee mit Interrupt ist, dass ein Builder Interrupt effizienter handhaben kann, indem er seinen Zwischenzustand speichert und beim nächsten Aufruf wieder aufnimmt.
    In der Praxis ist dies schwer zu implementieren, daher ist die häufigste Grenze, wenn wir vor / nach dem Aufruf jedes Builders in der Kette nach Interrupts suchen.

 


Siehe auch diesen Thread als Beispiel für eine erfolgreiche Neuinstallation von Eclipse: dev.eclipse.org/newslists/news.eclipse.webtools/msg08521.html
VonC

1
Diese Antwort ist nicht korrekt. Projekt -> Automatisch erstellen wurde immer deaktiviert, es wird jedoch nach dem Zufallsprinzip entschieden, den Arbeitsbereich zu aktualisieren, sodass ich in dieser gigantischen Codebasis nichts tun kann, was ich in der Zeit, in der ich Aufgaben für Kunden erledigen muss, nicht reduzieren kann.
Spencer Williams

15

Sie können zum manuellen Erstellen wechseln, um zu steuern, wann dies erledigt ist. Stellen Sie einfach sicher, dass Project > Build Automaticallydas Hauptmenü deaktiviert ist.


Vielen Dank, ich frage mich nur, ob Sie mir auch sagen können, was genau das Erstellen eines Arbeitsbereichs ist.
Super Cat

3

bei Bedarf programmgesteuert aus einem PDE- oder JDT-Code:

public static void setWorkspaceAutoBuild(boolean flag) throws CoreException 
{
IWorkspace workspace = ResourcesPlugin.getWorkspace();
final IWorkspaceDescription description = workspace.getDescription();
description.setAutoBuilding(flag);
workspace.setDescription(description);
}

0

Für alle, die auf ein Problem stoßen, bei dem das automatische Erstellen deaktiviert ist, das Projekt jedoch noch erstellt wird. Stellen Sie sicher, dass Ihr Projekt nicht auf dem Server auf der Registerkarte "Server" bereitgestellt und angewiesen wird, synchron zu bleiben.


Erwähnenswert ist kurz, wie festgestellt werden kann, ob die Meldung "Synchron bleiben" aktiviert ist. Ich sehe dies beispielsweise auf meiner Registerkarte "Server" nicht und auch nicht, wenn ich das Eigenschaften-Kontextmenü auf dem Server überprüfe.
Razzle
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.