diff --git a/keeper-gradle-plugin/src/main/java/com/slack/keeper/ZipFlingerExt.kt b/keeper-gradle-plugin/src/main/java/com/slack/keeper/ZipFlingerExt.kt index 1b1c4a2..10c0a47 100644 --- a/keeper-gradle-plugin/src/main/java/com/slack/keeper/ZipFlingerExt.kt +++ b/keeper-gradle-plugin/src/main/java/com/slack/keeper/ZipFlingerExt.kt @@ -30,7 +30,12 @@ internal fun File.classesSequence(): Sequence> { .filter { it.extension == "class" } .filterNot { "META-INF" in it.name } .sortedBy { it.invariantSeparatorsPath } - .map { it.absolutePath.removePrefix(prefix).removePrefix("/") to it } + .map { + it.absolutePath + .removePrefix(prefix) + .removePrefix(File.separator) + .replace(File.separator, "/") to it + } } /** Extracts classes from the target [jar] into this archive. */ diff --git a/keeper-gradle-plugin/src/test/kotlin/com/slack/keeper/KeeperFunctionalTest.kt b/keeper-gradle-plugin/src/test/kotlin/com/slack/keeper/KeeperFunctionalTest.kt index 92521a0..d2bdbb8 100644 --- a/keeper-gradle-plugin/src/test/kotlin/com/slack/keeper/KeeperFunctionalTest.kt +++ b/keeper-gradle-plugin/src/test/kotlin/com/slack/keeper/KeeperFunctionalTest.kt @@ -118,7 +118,8 @@ internal class KeeperFunctionalTest { projectDir.generatedChild("ExternalStagingAndroidTest/inferredKeepRules.pro") assertThat(generatedRules.readText().trim()) .isEqualTo( - EXPECTED_TRACE_REFERENCES_CONFIG.map { indentRules(it.key, it.value) }.joinToString("\n") + EXPECTED_TRACE_REFERENCES_CONFIG.map { indentRules(it.key, it.value) } + .joinToString(System.lineSeparator()) ) // Finally - verify our rules were included in the final minification execution. @@ -292,7 +293,11 @@ private val EXPECTED_TRACE_REFERENCES_CONFIG: Map?> = private fun indentRules(header: String, content: List?) = if (content == null) header else { - "$header {\n${content.joinToString("\n") { " $it" }}\n}" + "$header {" + + System.lineSeparator() + + content.joinToString(System.lineSeparator()) { " $it" } + + System.lineSeparator() + + "}" } @Language("PROGUARD") @@ -399,7 +404,10 @@ private fun buildGradleFile( id 'com.slack.keeper' } - java { toolchain { languageVersion.set(JavaLanguageVersion.of(21)) } } + // Ideally we use toolchains for a known version; this fails on windows w/WindowsRegistry access issues + // See: https://github.com/gradle/native-platform/issues/274 + // So we will just rely on environment JDK + //java { toolchain { languageVersion.set(JavaLanguageVersion.of(21)) } } tasks.withType(KotlinCompile).configureEach { compilerOptions { jvmTarget.set(JvmTarget.JVM_11) } } @@ -480,7 +488,7 @@ private fun buildGradleFile( } dependencies { - ${extraDependencies.entries.joinToString("\n") { " ${it.key} ${it.value}" }} + ${extraDependencies.entries.joinToString(System.lineSeparator()) { " ${it.key} ${it.value}" }} } """ .trimIndent()