Eclipse RCP Entwicklung mit Tycho (Teil 1)
08.08.2010 | Kategorie: Softwareentwicklung | Keine Kommentare | Kommentar Feed | Trackback
Eclipse RCP Anwendung lassen sich aus der Eclipse IDE ohne Probleme bauen. Sollen die Anwendungen aber auf einem Continous Integration Server, wie z.B. Hudson erstellt werden, so muss ein alternativer Weg gegangen werden. Da ich mich nicht mit Ant Skripten herumschlagen möchte, bevorzuge ich eine auf Maven basierende Lösung.
Bei meinen Recherchen sind mir mit Tycho und Felix zwei Maven Plugins aufgefallen. Während Felix den POM-first Ansatz verfolgt, geht Tycho den umgekehrten Weg (Manifest-first). Die Anwendung wird zunächst ganz normal in Eclipse erstellt, so dass sie nach einem Product Export lauffähig ist. Tycho versieht die Projekte dann jeweils mit einer POM, so dass die Erstellung der RCP Anwendung über Maven erfolgen kann.
Im Folgenden werde ich an einem Beispiel zeigen, wie leicht sich Eclipse RCP Anwendungen mit Tycho bauen lassen. Dazu erstellen wir uns zunächst eine Beispiel Anwendung in Eclipse. Als Entwicklungsumgebung kommen Eclipse Helios, Maven 3 und Tycho 0.10.0 zum Einsatz.
Erstellung eines Plugins Projekts
Dazu wird in Eclipse ein neues Plugin erstellt. Zum Glück gibt es mit dem RCP Mail Template eine Beispiel Anwendung, so dass sofort eine funktionierende nicht triviale Anwendung zur Verfügung steht. Die von mir benutzten Einstellungen zur Erzeugung des Plugins sind aus den Screenshots ersichtlich.




Erstellung eines Projekts für die Target Platform
Damit die Erstellung mit Tycho problemlos funktioniert wird zusätzlich noch eine Target Definition erstellt. Außerdem bietet eine Target Definition den Vorteil, dass gegen eine definierte Umgebung entwickelt wird. Dazu wird in Eclipse ein einfaches Projekt erstellt:


In diesem Projekt wird nun eine neue Target Definition angelegt:


Der Target Definition wird nun eine Location hinzugefügt. In dem Dialog Fenster wird Software Site angeklickt:

Als Software Site wird Helios ausgewählt. Nun muss unbedingt Group by Category deselektiert werden. Erst danach kann Eclipse RCP SDK ausgewählt werden.:

Nachdem die Location mit Finish bestätigt wurde, lädt Eclipse die notwendigen Dateien herunter. Sobald die Target Definition komplett heruntergeladen wurde, wird diese durch Set as Target Platform aktiviert.
Erstellung eines Feature Projekts
Die Beispiel Applikation werden wir Feature basiert erstellen. Dazu wird ein Feature Projekt angelegt.


Das Feature initialisieren wird durch eine Plugin Liste. Hier muss das am Anfang erstellte Plugin ausgewählt werden.

Erstellung eines Projekts für die Product Definition
Um die Product Definition von den bestehenden Projekten bzw. Plugins zu trennen, lege ich dazu in der Regel ein separates Projekt an.


In dem gerade angelegten Projekt wird jetzt eine Product Configuration erstellt:

Bei der Benennung muss momentan beachtet werden, dass Tycho Namenskonventionen folgt. Da das Projekt de.kofaldt.rcp.sample genannt wurde, erwartet Tycho die Product Configuration unter dem Namen de.kofaldt.rcp.sample.product.

Sobald die Product Definition angelegt wurde, werden ID, Version und Name vergeben. Außerdem soll die Konfiguration Feature basiert sein.

In dem obigen Fenster wird nun eine neue Product Definition angelegt. Dort wird das erstellte Plugin eingetragen und eine Product ID vergeben.

Jetzt wo die Product Definition abgeschlossen ist, sollte die Anwendung exportiert werden. Der Export muss ohne Fehlermeldungen abgeschlossen werden. Danach kann die exportierte Anwendung gestartet werden, so dass wir damit verifiziert haben, dass die Eclipse Konfiguration zum Bauen der Anwendung vollständig ist.
Ausblick
Im 2. Teil werden die Eclipse Projekte jeweils mit einer pom.xml versehen. Initial können diese durch Tycho erstellt werden. Jedoch müssen noch ein paar Nacharbeiten stattfinden, so dass über maven clean install die komplette Anwendung erfolgreich gebaut wird.
Kommentar hinterlassen
Es kann sein, dass dein Kommentar zuerst in die Kommentar-Warteschlange gelangt, danach muss er zuerst von mir freigeschaltet werden. Dies geschieht im Normalfall nach maximal 24h.