Maven License Plug-in: Verwaltung der Lizenz-Header von Quelldateien

Garantie auf einheitliche Datei-Header

Markus Stäuble

Den Anfang von Quelldateien bildet häufig ein Hinweis zum Copyright und zur Lizenz der Quelltexte. Dieser so genannte Header wird oft in Templates oder ähnlichem hinterlegt und es obliegt dem Entwickler, dass dieser Header auch in richtiger Form am Anfang der einzelnen Quelldateien steht. Bei der Prüfung der Coding Conventions in einem Build-Prozess sollte auch der Header mit geprüft werden. Beim Einsatz von Maven unterstützt hierbei das Maven License Plug-in. Worin besteht die Unterstützung?

Sowohl bei Open Source als auch bei kommerzieller Software ist die Markierung des Quelltextes mit einem Copyright bzw. einer Lizenz ein wichtiges Element, das häufig auch in Coding Conventions manifestiert wird. Dadurch haben in vielen Projekten die Quelldateien einen eindeutigen Datei-Header. Um diesen nicht jedes Mal von neuem erfassen zu müssen, wird er häufig in Form eines Templates in der Entwicklungsumgebung abgelegt. Im Fall von Eclipse erfolgt dies im Bereich der Code-Templates (Abb. 1). Damit wird beim Erzeugen einer neuen Quelldatei der hinterlegte Datei-Header automatisch eingefügt.

Abb. 1: Code-Templates in Eclipse

Ein Problem bei dieser Vorgehensweise entsteht, wenn dieser Datei-Header geändert wird. Denn in diesem Fall müssten alle alten Dateien nochmals angefasst werden. Dies kann in einem großen Projekt sehr mühsam und fehleranfällig sein. Einen möglichen Ausweg bietet das Maven License Plug-in. Die Voraussetzung für die Verwendung ist ein Build-Prozess, basierend auf Maven (Version 2). Im Namen des Plug-in steht zwar das Wort „License“, Sie können es aber grundsätzlich auch für andere Datei-Header einsetzen.

Was kann das Plug-in?

Das Maven License Plug-in ist, wie der Name schon sagt, ein Plug-in für die Verwendung innerhalb von Maven 2. Insgesamt bietet es drei Goals an, die in Tabelle 1 kurz beschrieben sind.

Name des Maven Goals Beschreibung
license:check Prüft, ob die vorhandenen Quelldateien im Projekt den richtigen Datei-Header besitzen.
license:format Hinzufügen bzw. Aktualisierung des Datei-Headers der vorhandenen Quelldateien im Projekt.
license:remove Entfernt den angegebenen Datei-Header der vorhandenen Quelldateien im Projekt.
Wie funktioniert das Plug-in?

Das Hauptprinzip des Maven License Plug-in ist, dass der Datei-Header nicht mehr direkt in den einzelnen Dateien gepflegt wird, sondern in einer separaten Datei. Über das zuvor aufgeführte Goal license:format wird dieser Datei-Header in alle Quelldateien hinzugefügt. Das Zusammenführen der Dateien läuft dabei nur über nicht ausgeschlossene Verzeichnisse (z.B. das Verzeichnis src). Es gibt eine Vorbelegung von ausgeschlossenen Verzeichnissen, die aber überschrieben werden kann. Näheres dazu findet man in der Konfigurationsreferenz.

Innerhalb der Verzeichnisse wird der Datei-Header zu allen unterstützen Formaten hinzugefügt. Eine Liste dieser Formate wird in einem Bereich der Dokumentation aufgeführt. Der Datei-Header wird dabei als Kommentar am Anfang der jeweiligen Datei hinzugefügt. In typischen Softwareprojekten kommen die Quelldateien in einem unterschiedlichen Format vor. Zum Beispiel ist die Kommentarart bei XML anders als bei Java. Um diesem Problem gerecht zu werden, sind für unterschiedliche Dateitypen auch unterschiedliche Kommentararten hinterlegt.

Für nicht unterstützte Dateitypen lässt sich ein eigenes Mapping von Dateityp zu Kommentarart hinterlegen. In Listing 1 ist das beispielhafte Mapping von .jwc-Dateien (Verwendung bei Tapestry) auf die Kommentarart XML_STYLE definiert.

XML_STYLE

Der komplette Prozess des Goal license:format ist in Abbildung 2 dargestellt.

Abb. 2: Funktionsweise von license:format.
Geschrieben von
Markus Stäuble
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.