15.01.2012

Xtend - Eclipse-Einrichtung mit einem "Hello World"

Nach dem wirklich hervorragenden Vortrag von und bei der Auftaktveranstaltung der Java User Group - Ostfalen wurde mein Interesse für die Java Erweiterung Xtend geweckt. Daher habe ich mich an ein einfaches erstes Beispiel gesetzt, welches das Aufsetzen der Umgebung und ein kleines Programm zeigt.

Das Aufsetzen der Entwicklungsumgebung ist Dank eines hervorragenden Plugins rechtschaffen einfach und kann ohne größeren Aufwand realisiert werden. Vorrausetzung ist lediglich ein JDK größer oder gleich der Version 5.
Die IDE wird fertig konfiguriert bereits auf der Projektseite zum Downlad angeboten, so dass weiterer Konfigurationsaufwand entfällt. Der Einfachheit halber habe ich mich für den Download der kompletten IDE entschieden, so dass ich meine bestehende Installation nicht anpassen muss.


Die bereitgestellte Version ist ein Eclipse Indigo mit bereits vorinstallierten Plugins für die Entwicklung mit Xtend.


Die Plugins können aber auch über den Marketplace von Eclipse nachgeladen werden. Ein entsprechender Eintrag steht dort zur Verfügung. Weitere Plugins können natürlich wie gewohnt installiert werden. So habe ich für die Beispiele das M2Eclipse und das Subclipse Plugin nachinstalliert.

Nach der erfolgreichen Installation folgt ein erstes Beispiel für den Umgang mit Xtend. Für ein realisitisches Beispiel wird die Runtime nicht über Eclipse eingebunden sondern wird mittels Maven Plugin in den Buildprozess integriert. Danke auch an  Dafür wird folgende Dependency ergänzt:


Damit später sowohl die Dependency für die Bibliotheken, als auch die Dependencies für das Build-Plugin aufgelöst werden können, müssen zwei Repositories ergänzt werden.


Im Anschluss wird das build-helper-maven-plugin konfiguriert.



Damit die, durch Xtend, generierten Sourcen nach einem Clean erneut erstellt werden, muss das maven-clean-plugin für diesen Schritt erweitert werden.


Nun kann auch das letzte Plugin zum Lifecycle hinzugefügt werden, so dass die Sourcen generiert werden.


Nach diesen Schritten sollten die Dependencies nach einem kurzen Build des Workspace in der Projekthierarchie zu finden sein.


In einigen Fällen kann es nun zu einer Fehlermeldung durch das M2Eclipse Plugin kommen. Dies ist ein Bug innerhalb des Plugins und bereits bekannt. Tritt eine der beiden folgenden Fehlermeldungen auf, gibt es eine Möglichkeit diesen Fehler zu beheben.

Plugin execution not covered by lifecycle configuration: org.eclipse.xtend2:xtend-maven-plugin:2.2.0:compile (execution: default, phase: generate-sources)

Plugin execution not covered by lifecycle configuration: org.eclipse.xtend2:xtend-maven-plugin:2.2.0:testCompile (execution: default, phase: generate-test-sources)

In diesem Fall wird ein Wechsel des Xtend Plugins vorgenommen und für den Build die Version 2.2.1 verwendet.


Nun kann das erste Beispiel erstellt werden, wie in jeder neuen Sprache ein "Hello World". Dazu wird eine einfache Xtend Klasse erstellt.


Nachdem die Klasse angelegt worden ist und ein erster Build über den Workspace gelaufen ist, sollte eine generierte Klasse im Verzeichnis src/main/xtend-gen vorhanden sein.


Ein Vergleich der beiden Klassen macht direkt kleine, aber wesentliche Unterschiede deutlich.


Im letzten Schritt wird nun die eigentliche Methode implementiert, so dass die ersten Nachrichten an die Welt verschickt werden können.


Wie also zu sehen ist, bietet Xtend eine schöne Möglichkeit effektiver zu arbeiten und teils überflüssige Typbezeichner oder auch Sprachelemente wegzulassen. Sicherlich gewöhnungsbedürftig, aber auf jeden Fall eine spannende Spacherweiterung für den Java-Entwickler! Da lohnt es sich über den Tellerrand zu schauen, demnächst sicherlich mehr!

Das Beispiel ist als komplettes Projekt wie immer im Repository zu finden!

Keine Kommentare:

Kommentar veröffentlichen