Mittwoch, 23. Mai 2012


Artikel

April 2010 | Artikel

Kampf der Builder: "Maven Tycho wird den Wettbewerb der Build Frameworks beleben"

(Link zum Artikel: http://www.entwickler.de/jaxenter//003007)

Die Eclipse/OSGi-Toolchain Maven Tycho

  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share
Einen riesigen Schritt in Richtung Eclipse ist jüngst Maven-Entwicklerhaus Sonatype gegangen: einmal mit der Weiterentwicklung des Maven-Eclipse-Integrations-Plug-ins m2eclipse, das kurz vor dem Major-Release 1.0 steht, und zum Zweiten mit der Bereitstellung des OSGi-Buildtools Maven Tycho, das kürzlich gar als offizielles Eclipse-Projekt vorgeschlagen wurde. Dem "Mavenizing" von Eclipse scheint nun wohl keine Grenzen mehr gesetzt!

Mit Tycho soll Maven also auch als Build-Lösung für OSGi-Anwendungen salonfähig werden. Welche belebende Wirkung Maven Tycho im Kampf der Buildtools speziell bei Eclipse haben könnte, klären wir im Gespräch mit JAX-Speaker Karsten Thoms, der das Bauen von Eclipse-Anwendungen mit Tycho im Rahmen des Enterprise Eclipse Day ausführlich vorstellen wird.

JAXenter: Hallo Karsten! Du wirst auf der JAX im Rahmen des Enterprise Eclipse Day das Aufsetzen eines Builds in Eclipse mit Maven Tycho vorstellen. Kannst du kurz skizzieren, wie das mit Tycho geht?

Karsten Thoms: Im Grunde genommen muss nur jedem Eclipse-Projekt eine POM-Datei (pom.xml, das Maven Project Object Model) hinzugefügt werden, dann lassen sich die Projekte schon von der Kommandozeile bauen. In der pom.xml werden die Tycho-Plug-ins in die Build-Beschreibung aufgenommen und zusätzlich die Angabe, ob das jeweilige Projekt ein Eclipse-Plug-in, Feature, Update Site oder Product ist. Für Tycho ist das OSGi Manifest führend und die Projekte werden gemäß den dort eingetragenen Einstellungen gebaut. Auch die Ausführung von Plug-in Unittests unterstützt Tycho und bietet hierzu eine Integration zu Maven Surefire. Zur Ermittlung der erforderlichen Target Platform, gegen die gebaut wird, kann Tycho auf P2 Repositories zugreifen und integriert sich auch sonst eng mit Equinox und P2.

JAXenter: Auf welche Probleme stößt man dabei typischerweise?

Karsten Thoms: Die meisten Probleme verursacht die richtige Konfiguration der Target Platform, insbesondere wenn plattformspezische Plug-ins mit einbezogen werden. Das kann dann schon mal Kopfzerbrechen bereiten, vor allem, weil die Dokumentation und die Fehlermeldungen oft nicht ausreichend sind. Aber das kennt man ja, wenn man P2 verwendet. Man bekommt dann nur die Meldung, dass eine Abhängigkeit nicht erfüllt werden kann, aber nicht, warum. Nicht-UI-Plug-ins sind sehr einfach zu bauen, aber bei UI-Plug-ins wird der Build zwangsläufig wegen SWT plattformspezifisch. Ein weiteres Sorgenkind ist der Product Export. Dieser funktioniert derzeit noch nicht zuverlässig und die dabei zu beachtenden Restriktionen und die korrekte Konfiguration sind noch schlecht dokumentiert.

JAXenter: Maven Tycho konkurriert bei Eclipse ja mit einigen anderen Technologien wie Buckminster, PDE Build, Athena oder das b3-Projekt (das Ed Merks im Rahmen des Eclipse Tools Day vorstellen wird). Wo sind die Stärken von Tycho gegenüber seinen Konkurrenten?

Karsten Thoms: Wenn man es geschickt anstellt, dann ist der nötigte Konfigurationsaufwand, um Tycho für Eclipse-Projekte zum Laufen zu bekommen, recht gering. Und von dort an läuft ein Build auf jedem Rechner ohne irgendwelche Umgebungs-abhängige feste Pfade zu setzen. Das Schöne an Maven Builds ist, dass, wenn sie einmal richtig konfiguriert sind, sie überall und zuverlässig laufen. Ein Alleinstellungsmerkmal ist, dass die anderen Build-Technologien einzig auf das Bauen von Eclipse-Artefakten ausgelegt sind, Tycho allerdings "nur" ein Aufsatz auf Maven ist, das auch als Build Framework für herkömmliche Projekte verwendet werden kann.

Die Integration eines Tycho Builds in eine Continuous-Integration-Umgebung ist ein Kinderspiel, denn Maven unterstützen die meisten direkt. Ich bin mir sicher, dass die aktuellen Kinderkrankheiten bald beseitigt sind und Tycho dann den Wettbewerb der Build Frameworks ziemlich beleben wird.

JAXenter: Wie wird eine bessere Integration von Maven in Eclipse die Eclipse-Plattform als Ganze voran bringen?

Karsten Thoms: Das Aufsetzen von Headless Builds für Eclipse-Projekte oder auch andere OSGi-basierte Projekte ist seit jeher etwas, was mit sehr viel Frustration verbunden ist und was nur wenige beherrschen. Maven Know-How gibt es außerhalb von Eclipse eine Menge. Nur Eclipse und OSGi Bundles ließen sich mit Maven kaum oder nur umständlich bauen. Das ändert sich mit Tycho. Mit der Zeit wird sicher auch das eine oder andere Eclipse-Projekt seinen Build auf Maven Tycho umstellen.

Maven selbst steht, denke ich, vor einer Renaissance. Kurz vor dem Release befindet sich bekanntlich Maven3, das eine komplette Überarbeitung des Build-Frameworks darstellt. Maven3 ist fast vollständig rückwärtskompatibel, was die Bereitschaft zur zügigen Migration bestehender Projekte enorm erleichtert und für eine rasche Adoption im Markt sorgen wird.

Die Entwicklung der Maven-IDE-Integration für Eclipse wurde parallel zu Maven3 entwickelt, so dass Eclipse die erste und umfangreichste Integration für Maven3 besitzen wird.

JAXenter: Was ist außer Tycho für dich noch spannend bei Eclipse?

Karsten Thoms: Ich bin stark im Eclipse Modeling Project involviert, von daher sind die Juwelen, die man dort findet, für mich am spannendsten. Allen voran muss momentan Xtext erwähnt werden, was sicher einer der revolutionärsten neuen Technologien im Eclipse-Umfeld ist und zu Recht den Eclipse Community Award dazu gewonnen hat. Ich selbst wende M2T Xpand oft in meinen Projekten an und trage als Committer zur Weiterentwicklung bei. Xpand ist aus meiner Sicht die derzeit beste Template Engine zur Generierung von Code. Auch sonst finde ich viele Eclipse-Projekte sehr interessant, die ich entweder in Projekten einsetze oder gerne mal einsetzen würde. Um nur einige davon zu nennen: EMF, e4, Teneo, CDO, Zest, EMF Compare, RAP. Neben den Projekten selbst ist Eclipse für mich eine große Community höchst talentierter Softwareentwickler, in der man einander mehr oder weniger kennt. An dem "mehr" werde ich in Zukunft weiter arbeiten.

JAXenter: Vielen Dank für dieses Gespräch!

Karsten Thoms ist als Softwarearchitekt für itemis tätig. Sein besonderes Interesse gilt dabei der modellgetriebenen Softwareentwicklung. Karsten ist Committer in mehreren Open Source MDSD Projekten.

Der Enterprise Eclipse Day auf der JAX 2010

Donnerstag, 6. Mai 2010, Moderator: Ekkehard Gentz

  • Chris Aniszczyk : An Introduction to EclipseRT, Equinox and OSGi

    This talk will introduce people to OSGi and Equinox using the Toast example from EclipseRT. Toast is an example application meant to demonstrate a wide range of EclipseRT and OSGi technologies. It operates in the telematics and fleet management domain. Telematics is the integration of telecommunications and informatics as in car navigation and infotainment devices. A typical telematics system interfaces to the devices in the vehicle and provides a user interface for interacting with or managing the devices. Toast is an example of using Equinox and OSGi Services, Declarative Services, extension points, applications, HTTP service and so on. Attendees will learn how to use and extend Toast to learn more about EclipseRT technologies.

  • Shaun Smith, Doug Clarke: Building OSGi Applications with JPA in Eclipse Galileo

    Eclipse Galileo’s Java EE distribution provides a complete JPA development and test environment for OSGi by bundling the EclipseLink runtime along with the Dali Java Persistence Tools, plug-in development environment, and Data Tools Platform. This session walks through the development of a simple OSGi JPA application using Eclipse Galileo and highlights how the integrated tools are used together.

  • Christian Campo : Eclipse Riena 2.0

    This talk gives a short overview over the Riena framework with the emphasis on its UI concept. While RCP was clearly made for the Eclipse IDE, Riena emphasises a new/different UI and navigation concept based on existing RCP technology. Riena has a clear separation of MVC and helps avoiding boilerplate code, and the resulting application is easier, and intuitive to understand.

  • Ekkehard Gentz, Florian Pirchner : Enterprise Business Applications UI made easy with redView

    Learn how to avoid writing boilerplate of code for good looking UI of Business Applications. We'll demonstrate live: Generate SWT Views from your domain model, design these Views using a WYSIWYG editor and run them in a Riena application together with navigation and CRUD functionality. Tools and frameworks are used from Eclipse Modeling (MWE, Xpand, UML2, EMF, CDO) and EclipseRT (Equinox OSGi, Riena).

  • Lars Gentz: EclipseRT goes mobile: how to use PushServices via BES (BlackBerry Enterprise Server)

    A short overview how to design and develope EclipseRT enterprise applications with integration of BlackBerry Smartphones. Setup of Eclipse IDE with BlackBerry IDE Plug-in, overview of new Java version from RIM, use of simulator, deployment and pushing events and data from EclipseRT to BlackBerry devices.

  • Karsten Thoms : Building Eclipse Applications with Maven Tycho

    Setting up builds for Eclipse applications is a complex and error prone task. Maven Tycho is an extension of the well-known build framework Maven which brings support for building Eclipse plug-ins, features and applications. This session demonstrates how a full automatic build with Tycho is set up and integrated into a CI environment (Hudson).

andere Artikel dieser Serie

Kommentare