From 25e6b762387e8a0e6ad04e19070fe9fa2accb00c Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Tue, 26 Jun 2018 23:39:31 +0300 Subject: [PATCH] Build: disable jar compression for local builds This speeds ups jar creation twice, which is significant for local incremental builds when jar creation can dominate compilation time. Changes in stripMetadata are required because putting entry from not-stripped jar caused failures when compression was disabled (because size and crc are actually changed during metadata removal; don't know why it works with compression). --- build.gradle.kts | 1 + buildSrc/src/main/kotlin/stripMetadata.kt | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index f765dbbb69f..d74b519dba6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -378,6 +378,7 @@ if (!isTeamcityBuild) { when (task) { is AbstractKotlinCompile<*> -> task.incremental = true is JavaCompile -> task.options.isIncremental = true + is org.gradle.jvm.tasks.Jar -> task.entryCompression = ZipEntryCompression.STORED } } } diff --git a/buildSrc/src/main/kotlin/stripMetadata.kt b/buildSrc/src/main/kotlin/stripMetadata.kt index b784cd1270a..dfca8f72078 100644 --- a/buildSrc/src/main/kotlin/stripMetadata.kt +++ b/buildSrc/src/main/kotlin/stripMetadata.kt @@ -6,6 +6,7 @@ import java.io.BufferedOutputStream import java.io.File import java.io.FileOutputStream import java.util.jar.JarFile +import java.util.zip.ZipEntry import java.util.zip.ZipOutputStream /** @@ -47,8 +48,8 @@ fun stripMetadata(logger: Logger, classNamePattern: String, inFile: File, outFil error("Size increased for ${entry.name}: was ${inBytes.size} bytes, became ${outBytes.size} bytes") } - entry.compressedSize = -1L - outJar.putNextEntry(entry) + val newEntry = ZipEntry(entry.name) + outJar.putNextEntry(newEntry) outJar.write(outBytes) outJar.closeEntry() }