From c0daede1aa1d53ac6c31d900184e7784c857135b Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 28 Jul 2022 18:02:27 +0100 Subject: [PATCH] Ensure that jarmode jar added to an app has same SHA as published jar Closes gh-31862 --- .../spring-boot-jarmode-layertools/build.gradle | 5 +++++ .../spring-boot-loader-tools/build.gradle | 15 +++++---------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/spring-boot-project/spring-boot-tools/spring-boot-jarmode-layertools/build.gradle b/spring-boot-project/spring-boot-tools/spring-boot-jarmode-layertools/build.gradle index bd774a035efa..1f78242394e5 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-jarmode-layertools/build.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-jarmode-layertools/build.gradle @@ -15,3 +15,8 @@ dependencies { testImplementation("org.mockito:mockito-core") testImplementation("org.mockito:mockito-junit-jupiter") } + +jar { + reproducibleFileOrder = true + preserveFileTimestamps = false +} diff --git a/spring-boot-project/spring-boot-tools/spring-boot-loader-tools/build.gradle b/spring-boot-project/spring-boot-tools/spring-boot-loader-tools/build.gradle index e00521b9b6df..386b799698a9 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-loader-tools/build.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-loader-tools/build.gradle @@ -49,23 +49,18 @@ task reproducibleLoaderJar(type: Jar) { destinationDirectory = file("${generatedResources}/META-INF/loader") } -task reproducibleJarModeLayerToolsJar(type: Jar) { +task layerToolsJar(type: Sync) { dependsOn configurations.jarmode from { - zipTree(configurations.jarmode.incoming.files.singleFile).matching { - exclude "META-INF/LICENSE.txt" - exclude "META-INF/NOTICE.txt" - } + file(configurations.jarmode.incoming.files.singleFile) } - reproducibleFileOrder = true - preserveFileTimestamps = false - archiveFileName = "spring-boot-jarmode-layertools.jar" - destinationDirectory = file("${generatedResources}/META-INF/jarmode") + rename({ "spring-boot-jarmode-layertools.jar" }) + into(file("${generatedResources}/META-INF/jarmode")) } sourceSets { main { - output.dir(generatedResources, builtBy: [reproducibleJarModeLayerToolsJar, reproducibleLoaderJar]) + output.dir(generatedResources, builtBy: [layerToolsJar, reproducibleLoaderJar]) } }