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).
This commit is contained in:
Alexey Tsvetkov
2018-06-26 23:39:31 +03:00
parent 3dc38fe2f8
commit 25e6b76238
2 changed files with 4 additions and 2 deletions
+1
View File
@@ -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
}
}
}
+3 -2
View File
@@ -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()
}