Versionierungskontrolle

IFS-Logo Diese Seite ist ein Teil der IsyFact-Standards. Alle Inhalte der Seite, insbesondere Texte und Grafiken, sind urheberrechtlich geschützt. Alle urheberrechtlichen Nutzungs- und Verwertungsrechte liegen beim Bundesverwaltungsamt.

Creative Commons Namensnennung Die Nutzung ist unter den Lizenzbedingungen der Creative Commons Namensnennung 4.0 International gestattet.

1. IsyFact Maven-Plugin zur Versionierungskontrolle

Zur Sicherstellung einer validen Versionierung der Anwendung wird das Maven-Plugin isy-versioning-maven-plugin eingesetzt. Die Einbindung des Maven-Plugin ist unter Einbindung und Konfiguration in der Anwendung erläutert.

1.1. Funktionsweise

Das Maven-Plugin prüft beim Build-Vorgang, ob die angegebene Version den Versionierungsvorgaben in IsyFact Versionierung entspricht. Die Versionsangabe wird in der Lifecycle-Phase "validate" geprüft. Dies ist im Default-Lifecycle der erste Schritt.

Die Versionierung ist abhängig von der Art der Komponente. Aus diesem Grund wird bei der Validierung zwischen Geschäftsanwendungen und Schnittstellen unterschieden. Dabei wird zunächst von jeder Komponente angenommen, es verfolgt die Versionierungsrichtlinien von Geschäftsanwendungen. Konnten diese nicht nachgewiesen werden, wird automatisch geprüft, ob die Kriterien einer Schnittstellen-Version auf die Versionsnummer zutreffen.

Anwendungen

Die Versionskontrolle der Geschäftsanwendungen und Register findet über reguläre Ausdrücke statt. Dabei wird zwischen zwei Szenarien unterschieden:

Release-Version: Eine stabile Version, welche zum Produktiv-Einsatz gedacht ist. Dort sind nur die Komponenten <major>.<minor>.<patch> erlaubt.

Test-Version: Eine Version, welche für eine Testumgebung gedacht ist. Die Stabilität dieser Version ist nicht sichergestellt. Dort sieht der Aufbau wie folgt aus: <major>.<minor>.<patch>[-<label>][+<buildmetadaten>]

Die Art des Szenarios, das für die zu kompilierende Anwendung genutzt werden soll, kann in der Anwendung selbst definiert werden (s. Einbindung und Konfiguration in der Anwendung).

Schnittstellen

Schnittstellen enthalten die <major>.<minor>-Version bereits in ihrer Modul-Bezeichnung. Aus diesem Grund enthält die Schnittstelle nur noch die <patch>-Version als Versionsnummer. Bei Test-Versionen wird die Version noch um ein Label erweitert (<patch>[-<label>]).

1.2. Einbindung und Konfiguration in der Anwendung

Schritt 1: Einbindung des Maven-Plugin in ein Projekt

Das Maven-Plugin muss zunächst in eine übergeordnete pom.xml (parent-pom) wie folgt eingebunden werden:

Listing 1. Einbindung des Maven-Plugins in ein Projekt.
...
    <plugin>
        <groupId>de.bund.bva.isyfact</groupId>
        <artifactId>isy-versioning-maven-plugin</artifactId>
        <version>1.0.0-RC1</version>
        <executions>
            <execution>
                <id>validateVersion</id>
                <phase>validate</phase>
                <goals>
                    <goal>validateVersion</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
...

Schritt 2: Konfiguration des Maven-Plugin in einem Projekt

Im Projekt selbst kann das Maven-Plugin konfiguriert werden. Dazu sind folgende Properties in die pom.xml des Projekts zu hinterlegen:

Listing 2. Konfiguration des Maven-Plugins in einem Projekt.
<properties>
    <!-- Schalter zum Deaktivieren des Plugins.  -->
    <VersionValidatorEnabled>true/false</VersionValidatorEnabled>
    <!-- Erlaubt das Ausschließen von Test-Versionen. -->
    <VersionValidatorRelease>true/false</VersionValidatorRelease>
</properties>

Über die Verwendung der Konfigurationsparamater VersionValidatorEnabled und VersionValidatorRelease kann das Maven-Plugin gesteuert werden.

Tabelle 1. Konfigurationsparemeter des Maven-Plugins
Konfigurationsparameter Beschreibung Beispiel

VersionValidatorEnabled

Definiert, ob das Plugin verwendet (true) oder deaktiviert (false) werden soll.

true

VersionValidatorRelease

Definiert, ob das Szenario ein Release (true) oder ein Build (false) ist.

true

Zusätzlich kann mittels der Maven-Konsole die Konfigurationsparameter mit einem vorgelagerten -D an das Maven-Plugin übergeben werden, um während des Build-Prozess Einfluss auf das Plugin-Verhalten zu erwirken.

Listing 3. Parameter zum Setzen der Konfigurationsparameter über die Konsole.
-DVersionValidatorEnabled=true/false
-DVersionValidatorRelease=true/false