Warum kann ein Eclipse RCP Füllgutansatz keine Klassen in org.eclipse.ui während kopflos Build finden?
Frage
Ich habe eine Produktdefinition, die eine Funktion enthält Ich schrieb und den org.eclipse.feature. Als ich dieses Produkt von Eclipse bauen, schließt es erfolgreich. Allerdings, wenn ich versuchen, den Headless Build zu verwenden, schlägt der Übersetzungsvorgang, wie es beklagt, dass es nicht im Preis enthalten Klassen in org.eclipse.ui finden. Eine dieser Klassen, zum Beispiel, ist PlatformUI. Der Build-Prozess somit versagt.
Ich habe überprüft und die org.eclipse.ui ist im org.eclipse.ui Plugin enthalten. Ich habe auch schließen dieses Plugin explizit in meiner benutzerdefinierten Funktion versucht, aber ohne Erfolg.
Ich habe auch eine dieser Plugins mit Problemen versucht zu entfernen, aber die nächste, die verwendet org.eclipse.ui fehlgeschlagen. So scheint es definitiv ein Classpath Problem einiger sowrt zu sein.
Ich habe diese ohne Kopf Build versucht, mit Version 3.3.2 von Eclipse.
Lösung
Die org.eclipse.ui.PlatformUI
Klasse ist in der org.eclipse.ui.workbench
Plug-in.
org.eclipse.ui.workbench erforderlich ist und wieder ausgeführt durch org.eclipse.ui.
Die "org.eclipse.ui
" -Paket ist ein Split-Paket .
Wenn Sie sich für diese Abhängigkeit Import-Package verwenden, dann sind Sie nur zu einem der Anbieter des Pakets verdrahtet zu werden. Wenn Sie nur die Klassen aus dem ui.workbench benötigen, dann können Sie ein Attribut zu Ihrer Import-Package-Anweisung hinzufügen:
Import-Package:org.eclipse.ui;ui.workbench=split
Oder Sie könnten nur Require-Bundle
ändern
Andere Tipps
Haben Sie überprüfen Sie Ihre build.properties
Datei?
Insbesondere die archivesFormat
Abschnitt
Die
archivesFormat
Eigenschaft ermöglicht eine Konfiguration Basis des Ausgabeformats (zip, tar und Ordner) des Build angibt.
Das Format der Eigenschaft ist<configuration> - <format>
, wo Konfiguration der gleiche Wert als die in der configs Eigenschaft angegeben ist.
Wenn es gibt linux,gtk,x86-folder
, während Sie mit einer win32
Installation versuchen zu bauen, wird es nicht funktionieren.
Leider zeigt Eclipse-unterschiedliches Verhalten zwischen einem Produkt in der GUI exportieren und ohne Kopf zu tun. Sie sind nicht ganz gleich.
Ein Problem, das ich in der Vergangenheit gefunden habe, ist, dass ich brauchte das Delta Pack für die Maden Build installiert zu arbeiten, auch wenn ich den Build auf der gleichen Architektur tat ich Targeting (win32). das Produkt aus dem GUI exportieren, ohne das Delta Pack funktionieren würde - Doh