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