#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:
+36
@@ -0,0 +1,36 @@
|
||||
package de.gecheckt.pdf.umbenenner.bootstrap;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Unit-Tests für {@link ApplicationVersionProvider}.
|
||||
* <p>
|
||||
* Im Testlauf ist kein gepacktes JAR mit Manifest vorhanden; der Test prüft deshalb
|
||||
* ausschließlich das Fallback-Verhalten und stellt sicher, dass die Methode niemals
|
||||
* {@code null} zurückgibt.
|
||||
*/
|
||||
class ApplicationVersionProviderTest {
|
||||
|
||||
/**
|
||||
* Im Testlauf (kein Fat-JAR, kein Manifest-Eintrag) muss der Fallback-Wert
|
||||
* {@code "dev"} zurückgegeben werden.
|
||||
*/
|
||||
@Test
|
||||
void resolveVersion_ohneGepacktesJar_gibtDevZurueck() {
|
||||
// Wenn kein MANIFEST.MF mit Implementation-Version vorhanden ist (IDE / Test),
|
||||
// wird der Fallback-Wert geliefert.
|
||||
String version = ApplicationVersionProvider.resolveVersion();
|
||||
assertThat(version).isEqualTo("dev");
|
||||
}
|
||||
|
||||
/**
|
||||
* Das Ergebnis von {@link ApplicationVersionProvider#resolveVersion()} darf
|
||||
* niemals {@code null} sein – weder im IDE-Betrieb noch im gepackten Betrieb.
|
||||
*/
|
||||
@Test
|
||||
void resolveVersion_gibtNiemalsNull() {
|
||||
assertThat(ApplicationVersionProvider.resolveVersion()).isNotNull();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user