2012-08-29 8 views
5

Die Basis unserer Unternehmensanwendung ist OSGI und wir haben mehrere Java-Projekte, die logisch OSGI-Bundles sind. Wir verwenden Maven, um die Anwendung mit dem Maven Bundle-Plugin zu kompilieren. Aber dieser Prozess ist zeitaufwendig und macht es unmöglich, die Anwendung zu debuggen. Wir verwenden auch die Plug-ins Runner und Pax (: provision), um die Anwendung auszuführen. Wenn wir uns auf die Auto-Build-Funktion von Eclipse verlassen könnten und auch die Anwendung debuggen würden, würde das unser Leben so viel einfacher machen. Gibt es eine Möglichkeit, Eclipse so zu konfigurieren, dass es eine OSGI-basierte Anwendung kompilieren kann (und ausgeführt werden kann)?Kompilieren und Ausführen einer OSGI-Anwendung in Eclipse

Antwort

5

Ich bin mir nicht ganz sicher, ob ich dich verstehe, aber hier geht.

Nun, das Ausführen/Debuggen von OSGi-Anwendungen in Eclipse ist wirklich einfach, solange sich Ihre Bundles in PDE-bewussten Projekten befinden oder zumindest auf Ihrer Zielplattform liegen.

Haben Sie die Quelle all Ihrer Bündel? Debuggen ohne Quelle ist nicht so nützlich. Wenn Sie das tun, können Sie einfach alle Quellen Ihrer Bundles in Ihren Eclipse-Arbeitsbereich importieren?

Andernfalls können Sie eine target platform erstellen, fügen Sie alle Ihre Bündel hinzu. (Als erster Versuch würde ich sagen, dump alle Ihre Bündel in einem Verzeichnis und zeigen Sie die Zielplattform dort)

So oder so, dann sollten Sie in der Lage sein zu laufen (oder zu debuggen) -> OSGi-Framework -> Neu - > Wählen Sie Ihre Bundles -> Start

Sie können beide Pakete von oder Zielplattform und von Ihrem Arbeitsbereich auswählen.

+0

Oh, Sie brauchen eine Eclipse-Installation mit PDE, vergessen zu erwähnen, dass. –

3

Zum Erstellen können Sie Eclipse Plugin Development Environment (PDE) verwenden. Trotz seines Namens ist es nicht spezifisch für den Aufbau von Eclipse-Plugins und kann für die Arbeit mit reinen OSGi-Bundles verwendet werden. Eclipse-Plugins sind OSGi-Bundles mit einigen Extras.

Kann Ihnen nicht mit dem Ausführen oder Debugging-Teil helfen, obwohl ich weiß, dass einige unternehmensorientierte OSGi-Plattformen Erweiterungen für PDE bieten.

1

Wenn Sie bereits das Maven-Bundle-Plugin verwenden, stellen Sie vielleicht fest, dass der Manifest-First-Ansatz von PDE nicht gut zu Ihrem vorhandenen Code-First-Build passt (ich nehme am Ende an, dass Sie beide ein IDE-Build erstellen möchten) Entwicklung und Debugging sowie eine Befehlszeilenerstellung für kontinuierliche Integration und automatisiertes Testen).

Sie haben zwei Möglichkeiten. Wie andere vorgeschlagen haben, können Sie die integrierte PDE von Eclipse verwenden und Tycho für Ihren Maven Build verwenden. Tycho verwendet die gleichen Daten, die von PDE verwendet werden, so dass Sie die Dinge nicht mehr als einmal aufschreiben müssen. Alternativ können Sie mit dem Maven-Bundle-Plugin bleiben und bndtools in Eclipse verwenden. Wie das Bundle-Plugin ist bndtools Code-first, so dass Sie sich keine Gedanken über die Verwaltung von Manifesten machen müssen. Sie können jedoch feststellen, dass es in bndtools nicht so viele Funktionen gibt wie in PDE. Ich würde vorschlagen, Ihre Manifeste immer noch manuell zu überprüfen, um sicherzustellen, dass Sie verstehen, was generiert wird. Ob Sie Manifest-First oder Code-First bevorzugen, ist ein bisschen eine hitzige philosophische Debatte.

1

Schauen Sie sich bndtools an. bndtools verwendet die gleiche bnd, die dem maven bundle plugin zugrunde liegt. Sie können sogar bndtools zusammen mit m2e verwenden. bndtools ist auf dem Eclipse-Marktplatz erhältlich.

Verwandte Themen