Maven BOM im webtoolkit
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:
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:
<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.