diff --git a/gradle/.gitignore b/gradle/.gitignore
index 1b6985c009..2295f429d7 100644
--- a/gradle/.gitignore
+++ b/gradle/.gitignore
@@ -3,3 +3,6 @@
# Ignore Gradle build output directory
build
+
+# Ignore the Gradle folder as this is constructed on the fly
+gradle
diff --git a/gradle/gradle/libs.versions.toml b/gradle/gradle/libs.versions.toml
deleted file mode 100644
index 5a98a3eadb..0000000000
--- a/gradle/gradle/libs.versions.toml
+++ /dev/null
@@ -1,8 +0,0 @@
-# This file was generated by the Gradle 'init' task.
-# https://docs.gradle.org/current/userguide/platforms.html#sub::toml-dependencies-format
-
-[versions]
-junit-jupiter = "5.10.2"
-
-[libraries]
-junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit-jupiter" }
diff --git a/gradle/pom.xml b/gradle/pom.xml
index fdf86b6d6f..ba77748942 100644
--- a/gradle/pom.xml
+++ b/gradle/pom.xml
@@ -46,6 +46,124 @@
+
+ maven-resources-plugin
+
+
+ validate-copy-libs-versions-toml
+ validate
+
+ copy-resources
+
+
+ gradle
+
+
+ resources
+ true
+
+ libs.versions.toml
+
+
+
+
+
+
+ pre-clean-copy-libs-versions-toml
+ pre-clean
+
+ copy-resources
+
+
+ gradle
+
+
+ resources
+ true
+
+ libs.versions.toml
+
+
+
+
+
+
+ validate-copy-gradle-wrapper-jar
+ validate
+
+ copy-resources
+
+
+ gradle/wrapper
+
+
+ resources
+
+ gradle-wrapper.jar
+
+
+
+
+
+
+ pre-clean-copy-gradle-wrapper-jar
+ pre-clean
+
+ copy-resources
+
+
+ gradle/wrapper
+
+
+ resources
+
+ gradle-wrapper.jar
+
+
+
+
+
+
+ validate-copy-gradle-wrapper-properties
+ validate
+
+ copy-resources
+
+
+ gradle/wrapper
+
+
+ resources
+ true
+
+ gradle-wrapper.properties
+
+
+
+
+
+
+ pre-clean-copy-gradle-wrapper-properties
+ pre-clean
+
+ copy-resources
+
+
+ gradle/wrapper
+
+
+ resources
+ true
+
+ gradle-wrapper.properties
+
+
+
+
+
+
+
+
org.apache.maven.plugins
@@ -94,6 +212,25 @@
+
+ maven-clean-plugin
+
+
+ delete-gradle-wrapper
+ clean
+
+ clean
+
+
+
+
+ gradle
+
+
+
+
+
+
diff --git a/gradle/gradle/wrapper/gradle-wrapper.jar b/gradle/resources/gradle-wrapper.jar
similarity index 100%
rename from gradle/gradle/wrapper/gradle-wrapper.jar
rename to gradle/resources/gradle-wrapper.jar
diff --git a/gradle/gradle/wrapper/gradle-wrapper.properties b/gradle/resources/gradle-wrapper.properties
similarity index 89%
rename from gradle/gradle/wrapper/gradle-wrapper.properties
rename to gradle/resources/gradle-wrapper.properties
index d4081da476..49078eeabe 100644
--- a/gradle/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/resources/gradle-wrapper.properties
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-${gradle.version}-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
diff --git a/gradle/resources/libs.versions.toml b/gradle/resources/libs.versions.toml
new file mode 100644
index 0000000000..273c4b799e
--- /dev/null
+++ b/gradle/resources/libs.versions.toml
@@ -0,0 +1,5 @@
+[versions]
+junit-jupiter = "${junit-jupiter.version}"
+
+[libraries]
+junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit-jupiter" }
diff --git a/pom.xml b/pom.xml
index a4a29374ce..db2a27d9f8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -99,6 +99,7 @@
3.9.11
+ 8.14.3
1.10.15
4.13.2