Es ist wirklich schade das Tycho gegen den Release von Maven 3 arbeitet. Bereits in der 0.3.0-DEV konnte Tycho gute Ansätze im Build von RCP Applikationen bringen. Seit dem neuesten Pseudo-Release ist dieser aber wieder einmal erwähnenswert.
Das automatisierte generieren von POMs lässt sich nun wieder realisieren. Die neuste Eigenschaft ist, das die groupId nicht mehr automatisch, mit dem übergeordneten Ordner, gesetzt wird, sondern nun explizit mit -DgroupId=… angegeben werden soll. Ich denke dies lässt viel Spielraum für die Strukturierung der Projekte offen. Mir persönlich gefiel ja das automatische setzen besser, aber auch nur weil es gut in mein Konzept gepasst hat.
Eine neue gute Eigenschaft birgt der Inhalt von JAR-Archiven. Hier werden nun durch Maven 3 die unnötigen Daten, wie z.b. die der SVN Dateien, nicht mehr integriert und somit automatisch ausgeklammert. Hierzu gab es in der Vergangenheit das Ticket MNGECLIPSE-1174 auf Sonatype.
Auch bei den Builds hat sich einiges verändert. Sie lassen sich nun auch mit der 0.4.0-DEV realisieren. So gibt man z.B. nicht mehr das Environment in der Befehlszeile an, sondern direkt in der eclipse-application POM.
<build>
<plugins>
<plugin>
<groupId>org.codehaus.tycho</groupId>
<artifactId>maven-osgi-packaging-plugin</artifactId>
<configuration>
<environments>
<environment>
<os>linux</os>
<ws>gtk</ws>
<arch>x86_64</arch>
</environment>
<environment>
<os>win32</os>
<ws>win32</ws>
<arch>x86</arch>
</environment>
</environments>
</configuration>
</plugin>
</plugins>
</build>
Diese Art und Weise ist natürlich viel einfacher und man muss nun auch nicht mehr für jedes Betriebsystem und Architektur einen separaten Build starten. Nach wie vor sollte man aber darauf achten, dass product - Plugin zu kopieren und die pom.xml wie folgt zu modifizieren:
<!-- groupId welche beim Start von Maven angegeben wird --> <groupId>some-group-id</groupId> <!-- Name der product - Datei ohne die extension .product --> <artifactId>product id</artifactId> <!-- Version welche in der product - Datei angegeben ist --> <version>product version</version> <!-- Definition als Applikation --> <packaging>eclipse-application</packaging>
Die Angabe eines Environment darf an dieser Stelle auch nicht fehlen (Siehe oben). Da es sonst zu dem Fehler „Product includes native launcher but no target environment was specified” kommt. Hat man die ersten Hürden oder Anpassungen von der 0.3.0-DEV überstanden, lassen sich nun mehr Builds mit dem neuen Pseudo-Release realisieren.
Persönlich würde ich mir noch wünschen das Sonatype mehr Feedback zu den Releases geben würde, damit man genau weiß, worauf man sich einlässt. In Tycho steckt sehr viel potential und ich hoffe in geraumer Zeit wieder ein positives Feedback abgeben zu können.
Die neusten DEVs können unter den Tycho Pseudo-Releases von Sonatype geladen werden. Hier ist es auch möglich auf ältere Builds zurückzugreifen.
[UPDATE]
Seit dem 20.07.09 gibt es nun auch die 0.4.0-DEV-2707. Nach ersten Tests gibt es keine nennenswerten Änderungen. Ebenfalls funktioniert der Build auch mit dieser Version wie gewohnt. Bei einem Build fällt nun auf, das die Zeit für den Build die zuvor leider auch nur 0 angezeigt hat nun gänzlich fehlt.
