From 89bb5a48713460fd0a32cdbcf71678a56a70ecac Mon Sep 17 00:00:00 2001 From: Andrew Kent Date: Thu, 9 Oct 2025 11:28:36 -0600 Subject: [PATCH] fail testJar task if jar version does not match expectations --- build.gradle | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/build.gradle b/build.gradle index a69dfb4..ad68623 100644 --- a/build.gradle +++ b/build.gradle @@ -315,9 +315,30 @@ task testJar(type: JavaExec) { classpath = files(jar.archiveFile) javaLauncher = javaToolchains.launcherFor(java.toolchain) + // Capture standard output + standardOutput = new ByteArrayOutputStream() + doFirst { // println "Testing jar: ${jar.archiveFile.get().asFile.absolutePath}" } + + doLast { + // Get the version printed by the jar + def printedVersion = standardOutput.toString().trim() + + // Get the expected version from git state + def expectedVersion = generateVersion() + + // Compare versions + if (printedVersion != expectedVersion) { + throw new GradleException( + "Version mismatch! Jar printed version '${printedVersion}' " + + "but expected version from git state is '${expectedVersion}'" + ) + } + + logger.lifecycle("✓ Jar version validation passed: ${printedVersion}") + } } // Run validation before compilation