Java Getriebe

Java und NetBeans

Automatische „Implementation Version“ für Module mit Git

Vor knapp einem Jahr hat Jens hier nochmal über die Automatische „Implementation Version“ für Netbeans Module mit Subversion berichtet. Dieser Beitrag behandelt die Möglichkeit eine ähnliche automatische Inkrementierung zu erreichen für den Fall, dass die Quellen über Git verwaltet werden.

Einer der Unterschiede zwischen Git und Subversion besteht darin, dass Subversion die Commits durchnummeriert. Solch eine Nummerierung gibt es bei Git allerdings nicht, denn dort sind die „Commitnummern“ SHA1-Hash-Werte. Diese eignen sich sehr schlecht bis gar nicht für die Versionierung von Modulen, da diese Hash-Werte sehr lang und kompliziert sind und die Hash-Werte von aufeinander folgenden Commits keine aufsteigende Reihenfolge erkennen lassen. Somit muss eine andere Möglichkeit gefunden werden die Implementation-Version eines Moduls zu bestimmen.

Read More

Automatische „Implementation Version“ für Module

Vor ein paar Jahren hatte ich schon mal einen Blogartikel „Subversion Revision als Implementation Version verwenden“ erstellt in dem ich die Nummer des letzten Subversion-Commits automatisch als Implementation Version des Moduls eingetragen habe. An der grundsätzlichen Vorgehensweise hat sich seit dem eigentlich nichts geändert. Bei uns werden auf diese Art und Weise immer noch die Module versioniert. In diesem Beitrag möchte ich einfach nur eine aktueller Version des Skriptes vorstellen, die zum einen ohne temporäre Datei auskommt und auch mit aktuellen Subversion-Versionen kompatibel ist:
Read More

Eigene Einstellungen für die eigene RCP Anwendung

Erstellt man eine eigene Anwendung auf Basis der NetBeans Platform erstellt kommt man irgendwann unweigerlich an den Punkt das Resultat auch an die Endanwender verteilen zu wollen. Im Kontextmenü des Suiteprojekt liefert der Eintrag „Package as“ alles was man dafür benötigt. Ein Problem gibt es nur, wenn man während der Entwicklung der eigenen Anwendung individuelle Argumente mit auf den Weg geben möchte. Im Debugger kann man hierfür ganz einfach die Variable run.args.extra in der project.properties nutzen. Leider werden diese Einstellungen nicht in eine Distribution übernommen. Read More

Subversion Revision als Implementation Version verwenden

Das Modulsystem von NetBeans sieht für jedes Modul seiner RCP Anwendungen (also auch der IDE) eine Versionsnummer von. Anhand dieser Versionnummer erkennt der Plugin Manager ob sich ein Modul z.B. in einem Update Center erneuert hat oder nicht.

Diese Versionsnummer wird in den Eigenschaften eines Modulprojekts unter „API Versioning“ eingetragen. Mindestens die „Specification Version„, also die Version der API mit der auf dieses Modul zugegriffen wird und wahlweise einer „Implementation Version„, die (wie ich sie nenne) „Bugfix Nummer„.

Aber genau diese „Bugfix Nummer“ wird oft nicht inkrementiert, wenn man einen Fehler behoben hat. Die API des Moduls hat sich meistens nicht verändert, darum wäre ein Ändern der „Specification Version“ falsch. Um dem Modul aber trotzdem automatisch eine neue Version verpassen zu können, habe ich das Buildskript etwas erweitert und verwende jetzt die Subversion Revisionsnummer des letzten Commits als „Implementation Version“.
Read More