Maven BOM im webtoolkit

Gültig ab jadice webtoolkit 5.7.4.0

Dieser Artikel beschreibt, wie man in einem jadice web toolkit die Pflege der Abhängigkeiten zu Spring Boot Bibliotheken steuert.

Import von Dependency Versionen über eine BOM

Mit dem Release 5.7.4.0 verfügt das jadice web toolkit über das neue Modul webtoolkit-bom, welches die Pflege von Abhängigkeiten des jadice web toolkits vereinfacht.
Über den Import der BOM (Bill of Materials) werden die Versionen der zugehörigen Abhängigkeiten mitgebracht und müssen nicht mehr getrennt gepflegt werden.


Um eine Auflistung aller Abhängigkeiten mit den jeweiligen Versionen zu bekommen, können Sie die POM-Datei des Moduls webtoolkit-bom herunterladen und dann folgenden Befehl ausführen:

Generierung der effective-pom
mvn org.apache.maven.plugins:maven-help-plugin:3.2.0:effective-pom -Dverbose=true -Doutput=effective-pom.xml --file=<heruntergeladene webtoolkit-bom pom>

Im selben Verzeichnis wird die Datei effective-pom.xml erzeugt. Im Abschnitt <dependencyManagement> sind alle Versionen von Abhängigkeiten aufgelistet, die über die Einbindung der jadice BOM importiert werden.

Beispiel : Einbindung der jadice webtoolkit-bom in ein Maven Projekt

Siehe https://github.com/levigo/jwt-getting-started/blob/master/jwt-tutorial-000/pom.xml

Die webtoolkit-bom wird ins <dependencyManagement> eingefügt. Anschließend werden die benötigten Abhängigkeiten für das Projekt in die <dependencies> eingefügt. Dabei müssen wir keine Versionen angeben, da diese aus der BOM ermittelt werden.

Benennung der Properties

Die Benennung der Properties soll wie unter der 2. Tabelle im Link erfolgen.
https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-dependency-versions.html#dependency-versions-properties

Überschreiben von Versionsnummern

Das Überschreiben der Versionsnummern kann an verschiedenen Stellen erfolgen. Zum Beispiel in der pom, in der die webtoolkit-bom importiert wird. Entweder im <dependencyManagement> oder in den <dependencies>. Alternativ können in einer/mehreren child pom(s) (der pom, in der die webtoolkit-bom importiert wird,) das <dependencyManagement> oder die <dependencies> angepasst werden.

Beispiel für das Ändern der Versionsnummer des Moduls webtoolkit-spring-boot-starter:

Generierung der effective-pom
<dependencyManagement>
    <dependencies>
      <!-- Let's import the jadice web toolkit bill of material. JWT dependency
        versions will be managed via this BOM. -->
      <dependency>
        <groupId>com.levigo.jadice.webtoolkit</groupId>
        <artifactId>webtoolkit-bom</artifactId>
        <version>${jwt.version}</version>
        <scope>import</scope>
        <type>pom</type>
      </dependency>
	  <dependency>
        <groupId>com.levigo.jadice.webtoolkit</groupId>
        <artifactId>webtoolkit-spring-boot-starter</artifactId>
  		<version>1.2.3</version> 
    </dependency>
    </dependencies>
  </dependencyManagement>

Welche Version des Moduls die pom nach dieser Änderung tatsächlich enthält, kann mit dem oben genannten effective-pom Kommando geprüft werden.