Der Bausatz setzt fortan die Sprachfassung 25 voraus

Die selbsttätige Prüfung baut seit ihrer Einführung auf einem JDK 25, der
Quellstand blieb mit „release 21“ jedoch hinter dieser Grundlage zurück. Beides
fällt nunmehr zusammen: Die Eigenschaft „maven.compiler.release“ lautet „25“,
und im Profil „wasm“ folgen ihr „source“ und „target“ samt dem erläuternden
Vermerk. Die dortige Abkehr von „release“ bleibt bestehen, denn die
Web-Image-API des GraalVM liegt außerhalb der dokumentierten JDK-API.

Damit ein zu alter Bausatz nicht erst den Übersetzer zu einer schwer deutbaren
Meldung nötigt, tritt der Regel „requireMavenVersion“ die Regel
„requireJavaVersion“ zur Seite, gespeist aus der neuen Eigenschaft
„enforced.java-version“. Das Handbuch setzt in § 5 Absatz 3 fortan die Fassung
25 voraus; § 14 Absatz 3 bleibt unberührt, denn der Wasm-Bau verlangt weiterhin
Oracle GraalVM 25.1 oder neuer.

Geprüft auf einem Oracle GraalVM 25.0.4: „./mvnw verify“ meldet BUILD SUCCESS
mit 456 von 456 Tests, Spotless beanstandet nichts, der Enforcer lässt die neue
Regel durchgehen, und auch das Profil „wasm“ übersetzt („target 25“).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GuVaax1nzPPH9Xk73JugUw
Change-Id: Ib4b4015e3b4d6660f41231bd965c617078de8838
diff --git a/pom.xml b/pom.xml
index 5511f72..53f5e9c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,12 +23,13 @@
 
   <properties>
     <maven.compiler.parameters>true</maven.compiler.parameters>
-    <maven.compiler.release>21</maven.compiler.release>
+    <maven.compiler.release>25</maven.compiler.release>
 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 
     <enforced.maven-version>3.9.0</enforced.maven-version>
+    <enforced.java-version>25</enforced.java-version>
 
     <build-helper-plugin.version>3.6.0</build-helper-plugin.version>
     <clean-plugin.version>3.3.2</clean-plugin.version>
@@ -254,6 +255,9 @@
                 <requireMavenVersion>
                   <version>${enforced.maven-version}</version>
                 </requireMavenVersion>
+                <requireJavaVersion>
+                  <version>${enforced.java-version}</version>
+                </requireJavaVersion>
               </rules>
             </configuration>
           </execution>
@@ -347,13 +351,13 @@
         <native-image.executable>${java.home}/bin/native-image</native-image.executable>
         <wasm.output.directory>${project.build.directory}/web</wasm.output.directory>
         <!--
-          Die Option „release 21“ beschränkte den Modulpfad auf die dokumentierte JDK-API; die
+          Die Option „release 25“ beschränkte den Modulpfad auf die dokumentierte JDK-API; die
           Web-Image-API des GraalVM wäre damit unsichtbar. Deshalb hier source/target statt
           release — übersetzt wird ohnehin nur mit dem GraalVM, gegen dessen eigene Klassen.
         -->
         <maven.compiler.release/>
-        <maven.compiler.source>21</maven.compiler.source>
-        <maven.compiler.target>21</maven.compiler.target>
+        <maven.compiler.source>25</maven.compiler.source>
+        <maven.compiler.target>25</maven.compiler.target>
       </properties>
 
       <dependencies>