Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo zusammen,
ich habe ein Problem mit der Installation von Plugins unter Eclipse.
Zuersteinmal ist zu sagen, das ich das Plugin nicht in Eclipse einbinden möchte, sondern nur in einem Eclipse-basiertem Programm.
Des Weiteren habe ich das Plugin selbst programmiert. Wichtig ist, das das Plugin über den dropins-Ordner intergriert werden MUSS.
Das heißt, ich habe mein Eclipse-basiertes Programm, welches genauso aufgebaut ist wie Eclipse. Mein Plugin liegt in einer jar-Datei vor. Installieren möchte ich es wie folgt:
Ich erstelle immer verschiedene Versionen des Plugins. Das heißt, immer wenn sich etwas am Code ändert wird das Plugin neu erstellt. Jedoch erkennt er nicht immer das Plugin. Momentan habe ich eine alte Version, welche erkannt wird und eine neue, in der das Plugin nicht erkannt wird.
Erstellen tu ich das Plugin wie folgt:
Ich habe ein Plugin-Project. Alles mit Eclipse erstellt und unter Eclipse läuft es auch einwandfrei. Dann habe ich ein Feature für dieses Plugin erstellt. Dem Feature habe ich einige Abhängikeiten hinzugefügt.
Anschließend habe ich mit Eclipse eine Update Site erstellt. Der füge ich dann mein Feature hinzu und klicke auf "Build".
Richtig, ich kann meinem Programm auch dann die Update Seite hinzufügen und es darüber installieren. Das geht jedoch auch nicht immer. Aber das ist ein anderes Thema. Das Problem, ich MUSS es über den dropins-Ordner integrieren.
Also gehe ich manuell in die Update Seite und kopier das Plugin in die oben beschriebene Struktur in den dropins-Ordner.
Anschließend starte ich das Programm mit einem -clean. Im log-File steht auch nichts weiter zu dem Plugin. Das heißt, das Plugin kommt dort gar nicht vor.
Das Eclipse-basierte Programm arbeitet mit Eclipse 3.6.
Meine Frage nun: Warum wird das Plugin nicht erkannt? Was muss vielleicht in meinem Plugin-Project gegeben sein, damit es erkannt wird? Muss etwas bestimmtes in der plugin.xml stehen, damit es immer richtig erkannt wird?
Wenn ich ein Plugin über den Dropins Ordner integriere wird dieses Plugin ja nicht in der Liste installierter Software angezeigt, sondern nur in der Liste Plugins. Ich kann es also nicht über einen Button deinstallieren.
Also deinstallier ich es, indem ich es aus dem ordner rausnehme und Eclipse mit einem -clean neu starte...ist das falsch?
Füge ich anschließend meine neueste Version wieder in den dropins Ordner hinzu wird diese nicht erkannt.
Jetzt ist mir doch etwas im log-File aufgefallen:
Code:
!ENTRY org.eclipse.equinox.p2.engine 4 4 2012-01-18 15:07:01.676
!MESSAGE An error occurred while uninstalling
!SUBENTRY 1 org.eclipse.equinox.p2.engine 4 0 2012-01-18 15:07:01.676
!MESSAGE session context was:(profile=profile, phase=org.eclipse.equinox.internal.provisional.p2.engine.phases.Uninstall, operand=[R][B]de.mein.plugin_1.3.6[/B] --> null, action=org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.UninstallBundleAction).
!SUBENTRY 1 org.eclipse.equinox.p2.engine 4 0 2012-01-18 15:07:01.676
!MESSAGE Error while loading manipulator.
!STACK 0
java.lang.IllegalStateException: Error while loading manipulator.
at org.eclipse.equinox.internal.p2.touchpoint.eclipse.LazyManipulator.loadDelegate(LazyManipulator.java:54)
at org.eclipse.equinox.internal.p2.touchpoint.eclipse.LazyManipulator.getConfigData(LazyManipulator.java:108)
at org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.UninstallBundleAction.uninstallBundle(UninstallBundleAction.java:74)
at org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.UninstallBundleAction.execute(UninstallBundleAction.java:29)
at org.eclipse.equinox.internal.p2.engine.ParameterizedProvisioningAction.execute(ParameterizedProvisioningAction.java:35)
at org.eclipse.equinox.internal.provisional.p2.engine.Phase.mainPerform(Phase.java:129)
at org.eclipse.equinox.internal.provisional.p2.engine.Phase.perform(Phase.java:72)
at org.eclipse.equinox.internal.provisional.p2.engine.PhaseSet.perform(PhaseSet.java:44)
at org.eclipse.equinox.internal.provisional.p2.engine.Engine.perform(Engine.java:54)
at org.eclipse.equinox.internal.p2.reconciler.dropins.ProfileSynchronizer.executePlan(ProfileSynchronizer.java:466)
at org.eclipse.equinox.internal.p2.reconciler.dropins.ProfileSynchronizer.synchronize(ProfileSynchronizer.java:107)
at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.synchronize(Activator.java:422)
at org.eclipse.equinox.internal.p2.reconciler.dropins.Activator.start(Activator.java:171)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:370)
at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1068)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:557)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:464)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:248)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)
da steht die alte Version drin. Was kann man da tun?
Hi,
ich dachte das Problem gelöst zu haben. Hab ich nicht. Ich habe heute wieder eine neue Version meines Plugins erstellt und nichtsw funktioniert, das es erkannt wird.
Wir haben eine Weile auch versucht neue Versionen über dropis Folder zu verteilen, es dann aber aufgegeben. Manchmal hat es funktioniert, dann wieder nicht.
Der IMO einzig zuverlässige Weg um Updates durchzuführen ist über p2 bzgw. den p2 Director.
Ok danke...ich bin auch kurz vorm aufgeben. Habs gestern noch irgendwie hinbekommen. Aber das ist einfach nicht zufriedenstellend wenn man nicht weiß woran es liegt und was man eigentlich genau tun muss, dass es funktioniert.
Muss ich nur noch den Chef überzeugen, das der dropins ordner s*****e ist...
Dann mach ich mich mal schlau, wie es noch so geht.
Danke auf jedenfall.
Ich habs damit versucht:
-application org.eclipse.equinox.p2.director \
-repository dropins\meinPlugin\eclipse\plugins
-installIU de.mein.plugin.soHeißtEs_1.3.10.jar
Wo muss ich das rein tun? Ich habs mal zum Test in ner Start.bat getan und da klappt es nur, wenn ichs über die Kommandozeile starte. Per Doppelklick nicht.
Allerdings soll das Programm mit Doppelklick ausführbar sein und das Plugin dann halt installiert sein.
Von daher denke ich, das ich was falsch gemacht habe.
Wenn Aufruf von Kommandozeile und Doppelklick sich anders verhalten, dann liegt das vermutlich an relativen Pfaden. Mit Windows Batch habe ich nicht wirklich viel am Hut, aber das Verzeichnis in dem die .bat liegt bekommst du AFAIK mit %~dp0