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:
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user