# Eclipse RCP - Headless Build mit Buckminster



## tech84 (21. Jul 2010)

Hi,

ich habe ein RCP-Projekt mit mehreren Plug-ins (keine features). und einer product-Datei. Das exportieren funktioniert auch einwandfrei, allerdings über Eclipse selber. Nun möchte ich das Ganze außerhalb von Eclipse über die Konsole anwerfen, also headless..

Ich habe lange gesucht, mehrere (zum teil veraltete) Tutorials gefunden. Bin nun auf folgendes Tutorial gestoßen, welches ich auch zum Teil abgearbeitet habe: 

Headless Eclipse RCP builds with Buckminster and Hudson

Der Schritt mit dem exportieren über backminster aus eclipse heraus funktioniert auch. Der link, der zum headless-buckminster führt funktioniert leider nicht mehr (404 File not found)

Nun zu meinen Fragen:

1.) Ist es mit dem headless-buckminster möglich ein projekt komplett ohne eclipse (ist auf der maschine installiert, kein problem) zu exportieren? wenn ja wie? Das Hudson-Plugin scheint´ne super sache zu sein, nur erfüllt nicht meinen wunsch. (Der export soll von außen angestoßen werden)

2.) Ich habe gelesen, dass man diesen headless-export nur auf basis von features erstellen kann. Kann ich dann (zum testen) einfach meine ganzen plug-ins in ein feature einfügen?

Freue mich über jede Hilfe!

Gruß, tech


----------



## Wildcard (21. Jul 2010)

> Der Schritt mit dem exportieren über backminster aus eclipse heraus funktioniert auch



Dann sollte der Weg zum Headless Build nicht weit sein. Es ist die stärke von Buckminster das ein lokaler Build genau so abläuft wie ein Headless Build auf dem Server.


> 1.) Ist es mit dem headless-buckminster möglich ein projekt komplett ohne eclipse (ist auf der maschine installiert, kein problem) zu exportieren?


Buckminster basiert auf Eclipse Komponenten, wie ist also die Frage zu verstehen 'komplett ohne eclipse'?
Die Sache ist komplett Headless, wenn du das meinst.


> Das Hudson-Plugin scheint´ne super sache zu sein, nur erfüllt nicht meinen wunsch. (Der export soll von außen angestoßen werden)


Das Hudson Plugin integriert nur Buckminster in Hudson und bietet einige Convinience Funktionalitäten. Wie der Build getriggert wird entscheidet Hudson (und Hudson bietet dafür unzählige Möglichkeiten). 



Was hast du dir denn vorgestellt? Würde mich sehr wundern wenn sich das mit Hudson nicht umsetzen lässt.



> 2.) Ich habe gelesen, dass man diesen headless-export nur auf basis von features erstellen kann. Kann ich dann (zum testen) einfach meine ganzen plug-ins in ein feature einfügen?


Mit dem regulären PDE Headless Build ist das zum Teil korrekt, mit Buckminster aber durchaus möglich. Letztlich brauchst du nur ein Product File und das ist entweder Feature based, oder Plugin Based. That said ist es besser ein Feature Based Product zu haben und das Mailapp Tutorial im Buckminster SVN demonstriert ganz gut was wir für einen guten Aufbau halten.

Dieses Tutorial hier habe ich vor einer Weile geschrieben und diente wohl als Vorlage für Ralf Eberts Blog, vielleicht hilft es dir:
Building an RCP application with hudson (Buckminster) - Eclipsepedia

Falls du konkrete Probleme mit der Umsetzung hast kann ich dir sicherlich helfen.


----------



## tech84 (21. Jul 2010)

Hi, 

erstmal vielen Dank für die schnelle Antwort. Mit "komplett ohne eclipse" meine ich komplett ohne eclipse-gui, vielleicht habe ich mich da etwas ungeschickt ausgedrückt. 

Ich habe mir das einfach so vorgestellt, dass ich nicht über den buckminster-menüpunkt in Eclipse den build erstelle, sondern komplett ohne Gui - s.d. ich den build von außen (konsole) erstellen kann und die *.zip Datei dort abgelegt wird. 

Ich habe dann quasi´nen Client-Rechner auf dem Eclipse installiert ist. Das projekt ist im CVS abgelegt. Auf den Client kann ich über ssh oder was auch immer zugreifen und den build-prozess anwerfen. Die Zip-Datei soll dann auf dem Client-PC abgelegt werden.

Ralf Eberts Tutorial hatte ich beim überfliegen so verstanden, dass ich durch das hudson-plugin ´n webinterface zur Verfügung gestellt bekomme, mit dem ich die builds erstellen kann. Aber _das _will ich ja nicht - deshalb habe ich´s abgebrochen.

Also würde Hudson/Buckminster für meinen Zweck (headlessbuild über konsole) reichen? 
Wie komme ich denn an buckminster (headless)? Der link will bei mir wie gesagt nicht - probiere schon seit Freitag 

Ich

Gruß, tech


----------



## Wildcard (21. Jul 2010)

> erstmal vielen Dank für die schnelle Antwort. Mit "komplett ohne eclipse" meine ich komplett ohne eclipse-gui, vielleicht habe ich mich da etwas ungeschickt ausgedrückt.
> Ich habe mir das einfach so vorgestellt, dass ich nicht über den buckminster-menüpunkt in Eclipse den build erstelle, sondern komplett ohne Gui - s.d. ich den build von außen (konsole) erstellen kann und die *.zip Datei dort abgelegt wird.


Ohne GUI ist kein Problem, sei es über Kommandozeile, Ant, oder CI Server.


> Ich habe dann quasi´nen Client-Rechner auf dem Eclipse installiert ist. Das projekt ist im CVS abgelegt. Auf den Client kann ich über ssh oder was auch immer zugreifen und den build-prozess anwerfen. Die Zip-Datei soll dann auf dem Client-PC abgelegt werden.


Üblicherweise verwendet man einen CI/Build Server wie eben Hudson (das Ding mit der Weboberfläche).
Warum solltest du das nicht wollen wenn du ja offensichtlich schon einen SSH Server hast? Ein CI Server bietet dir viele Vorteile.



> Ralf Eberts Tutorial hatte ich beim überfliegen so verstanden, dass ich durch das hudson-plugin ´n webinterface zur Verfügung gestellt bekomme, mit dem ich die builds erstellen kann. Aber das will ich ja nicht - deshalb habe ich´s abgebrochen.


Hudson ist ein CI Server auf dem du Builds automatisiert verwaltest, triggerst, Unit Tests und Code Coverage durchlaufen lässt, Code Metriken erstellst, usw.
Das Buckminster Plugin integriert Buckminster in Hudson CI (die Weboberfläche). Der eigentliche Build wird von Buckminster ausgeführt, dafür braucht man Hudson (und das Plugin) nicht.



> Wie komme ich denn an buckminster (headless)? Der link will bei mir wie gesagt nicht - probiere schon seit Freitag


Auf der Buckminster Seite auf Download klicken. Direktlink:
Buckminster Downloads
Die Headless Installation ist allerdings nicht sehr komfortabel. Du musst erst den p2 Director runterladen, dann Buckminster mit dem Director Materialisieren und anschließend über die Konsole die Features (CVS, SVN, PDE, JDT,...) installieren die du für deinen Build benötigst. 
Mit Hudson wird das alles komfortabler, das Buckminster Plugin kann Buckminster automatisch bei Bedarf herunterladen und konfigurieren.

Wie gesagt, ich würde mir das mit dem Shell Script überlegen, ein CI Server kann viel mehr und ist komfortabler zu bedienen.
Zum ausprobieren kannst du einfach eine JNLP starten:
Hudson CI

Buckminster Seite mit Handbuch usw:
Eclipse Buckminster Project

Wenn du, warum auch immer, alles über ein Shell-Script erledigen willst, dann musst du dich eben per SSH einloggen, buckminster mit den entsprechenden Argumenten starten (welcher Workspace, welche Target Platform, Query resolven, Build Action ausführen) und anschließend das Ergebnis runterladen.


----------



## Wildcard (21. Jul 2010)

Übrigens, die Job Konfiguration kannst du ohne login zwar nicht einsehen, aber so sieht ein Hudson in Action aus:
https://build.eclipse.org/hudson/
Ein Großteil der Eclipse Projekte wird auf Hudson mit Buckminster gebaut.


----------

