#67: Konsistente Versionierung via Maven CI-friendly revision

- ${revision}-Property im Parent-POM eingeführt; alle Kind-POM-<parent>-Blöcke
  verwenden ${revision} statt hartkodierter Version
- flatten-maven-plugin 1.6.0 in <build><plugins> des Parent-POM aktiviert
  (resolveCiFriendliesOnly), sodass installierte POMs keine unaufgelösten
  ${revision}-Referenzen enthalten
- MANIFEST.MF des Shade-JARs enthält Implementation-Version und Implementation-Title
- app.version im Packaging-Modul auf ${revision} umgestellt (war 2.5.0)
- ApplicationVersionProvider: neue Utility-Klasse im Bootstrap-Modul liest
  Implementation-Version aus MANIFEST.MF, Fallback "dev" bei ungepacktem Betrieb
- ApplicationVersionProviderTest: prüft Fallback-Verhalten im Testlauf
- .gitignore: .flattened-pom.xml-Dateien ausgeschlossen

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-30 10:36:55 +02:00
parent 01e97848a7
commit c6379c04f6
12 changed files with 138 additions and 14 deletions
+38 -1
View File
@@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>de.gecheckt</groupId>
<artifactId>pdf-umbenenner-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<version>${revision}</version>
<packaging>pom</packaging>
<modules>
<module>pdf-umbenenner-domain</module>
@@ -18,6 +18,10 @@
<module>pdf-umbenenner-packaging</module>
</modules>
<properties>
<!-- Zentrale Versionsproperty für Maven CI-friendly Versioning.
Kann per -Drevision=MAJOR.MINOR.BUILD überschrieben werden (z. B. im CI). -->
<revision>0.0.1-SNAPSHOT</revision>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.release>21</maven.compiler.release>
@@ -230,6 +234,39 @@
</pluginManagement>
<plugins>
<!--
flatten-maven-plugin: löst ${revision} in installierten POMs auf, sodass
keine unaufgelösten Property-Referenzen in ~/.m2 erscheinen.
flattenMode=resolveCiFriendliesOnly beschränkt die Auflösung auf CI-friendly
Properties (${revision}, ${sha1}, ${changelist}) und lässt alle anderen
Properties unverändert.
-->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<version>1.6.0</version>
<configuration>
<updatePomFile>true</updatePomFile>
<flattenMode>resolveCiFriendliesOnly</flattenMode>
</configuration>
<executions>
<execution>
<id>flatten</id>
<phase>process-resources</phase>
<goals>
<goal>flatten</goal>
</goals>
</execution>
<execution>
<id>flatten.clean</id>
<phase>clean</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>