From 1109b795da044e0cf11d4d6338142684ddb35936 Mon Sep 17 00:00:00 2001 From: Vyacheslav Gerasimov Date: Thu, 30 Aug 2018 22:27:05 +0300 Subject: [PATCH] Build: upgrade gradle to 4.10 --- build.gradle.kts | 49 ++++++++++--------- buildSrc/build.gradle.kts | 6 +-- buildSrc/src/main/kotlin/artifacts.kt | 15 +++--- buildSrc/src/main/kotlin/embeddable.kt | 6 +-- buildSrc/src/main/kotlin/instrument.kt | 4 +- buildSrc/src/main/kotlin/instrument.kt.181 | 4 +- .../kotlin/plugins/PublishedKotlinModule.kt | 2 +- .../android-sdk/build.gradle.kts | 4 +- gradle/wrapper/gradle-wrapper.properties | 2 +- j2k/build.gradle.kts | 5 -- j2k/build.gradle.kts.173 | 5 -- j2k/build.gradle.kts.as31 | 5 -- j2k/build.gradle.kts.as32 | 5 -- j2k/build.gradle.kts.as33 | 5 -- .../kotlin/gradle/plugin/KotlinPlugin.kt | 2 +- .../plugin/mpp/KotlinSoftwareComponent.kt | 7 +-- prepare/compiler/build.gradle.kts | 18 +++++-- prepare/compiler/build.gradle.kts.173 | 18 +++++-- prepare/compiler/build.gradle.kts.181 | 18 +++++-- 19 files changed, 92 insertions(+), 88 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 478afbf81da..1cc4d8537c1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -383,14 +383,14 @@ val ideaPlugin by task { } tasks { - "clean" { + create("clean") { doLast { delete("$buildDir/repo") delete(distDir) } } - "cleanupArtifacts" { + create("cleanupArtifacts") { doLast { delete(ideaPluginDir) delete(ideaUltimatePluginDir) @@ -398,7 +398,7 @@ tasks { } } - "coreLibsTest" { + create("coreLibsTest") { (coreLibProjects + listOf( ":kotlin-stdlib:samples", ":kotlin-test:kotlin-test-js:kotlin-test-js-it", @@ -409,34 +409,34 @@ tasks { } } - "gradlePluginTest" { + create("gradlePluginTest") { gradlePluginProjects.forEach { dependsOn(it + ":check") } } - "gradlePluginIntegrationTest" { + create("gradlePluginIntegrationTest") { dependsOn(":kotlin-gradle-plugin-integration-tests:check") } - "jvmCompilerTest" { + create("jvmCompilerTest") { dependsOn("dist") dependsOn(":compiler:test", ":compiler:container:test", ":compiler:tests-java8:test") } - "jsCompilerTest" { + create("jsCompilerTest") { dependsOn(":js:js.tests:test") dependsOn(":js:js.tests:runMocha") } - "scriptingTest" { + create("scriptingTest") { dependsOn("dist") dependsOn(":kotlin-script-util:test") } - "compilerTest" { + create("compilerTest") { dependsOn("jvmCompilerTest") dependsOn("jsCompilerTest") @@ -445,44 +445,44 @@ tasks { dependsOn(":compiler:incremental-compilation-impl:test") } - "toolsTest" { + create("toolsTest") { dependsOn(":tools:kotlinp:test") } - "examplesTest" { + create("examplesTest") { dependsOn("dist") (project(":examples").subprojects + project(":kotlin-gradle-subplugin-example")).forEach { p -> dependsOn("${p.path}:check") } } - "distTest" { + create("distTest") { dependsOn("compilerTest") dependsOn("toolsTest") dependsOn("gradlePluginTest") dependsOn("examplesTest") } - "specTest" { + create("specTest") { dependsOn("dist") dependsOn(":compiler:tests-spec:test") } - "androidCodegenTest" { + create("androidCodegenTest") { dependsOn(":compiler:android-tests:test") } - "jps-tests" { + create("jps-tests") { dependsOn("dist") dependsOn(":jps-plugin:test") } - "idea-plugin-main-tests" { + create("idea-plugin-main-tests") { dependsOn("dist") dependsOn(":idea:test") } - "idea-plugin-additional-tests" { + create("idea-plugin-additional-tests") { dependsOn("dist") dependsOn(":idea:idea-gradle:test", ":idea:idea-maven:test", @@ -490,20 +490,20 @@ tasks { ":eval4j:test") } - "idea-plugin-tests" { + create("idea-plugin-tests") { dependsOn("dist") dependsOn("idea-plugin-main-tests", "idea-plugin-additional-tests") } - "android-ide-tests" { + create("android-ide-tests") { dependsOn("dist") dependsOn(":plugins:android-extensions-ide:test", ":idea:idea-android:test", ":kotlin-annotation-processing:test") } - "plugins-tests" { + create("plugins-tests") { dependsOn("dist") dependsOn(":kotlin-annotation-processing:test", ":kotlin-source-sections-compiler-plugin:test", @@ -516,7 +516,7 @@ tasks { } - "ideaPluginTest" { + create("ideaPluginTest") { dependsOn( "idea-plugin-tests", "jps-tests", @@ -527,12 +527,15 @@ tasks { } - "test" { + create("test") { doLast { throw GradleException("Don't use directly, use aggregate tasks *-check instead") } } - "check" { dependsOn("test") } + + create("check") { + dependsOn("test") + } } fun CopySpec.setExecutablePermissions() { diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 5f738c2226e..ea4bfc3802a 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -32,12 +32,12 @@ plugins { } gradlePlugin { - (plugins) { - "pill-configurable" { + plugins { + register("pill-configurable") { id = "pill-configurable" implementationClass = "org.jetbrains.kotlin.pill.PillConfigurablePlugin" } - "jps-compatible" { + register("jps-compatible") { id = "jps-compatible" implementationClass = "org.jetbrains.kotlin.pill.JpsCompatiblePlugin" } diff --git a/buildSrc/src/main/kotlin/artifacts.kt b/buildSrc/src/main/kotlin/artifacts.kt index 35dded1fb92..fe8e8f1972d 100644 --- a/buildSrc/src/main/kotlin/artifacts.kt +++ b/buildSrc/src/main/kotlin/artifacts.kt @@ -8,7 +8,6 @@ import org.gradle.api.file.DuplicatesStrategy import org.gradle.api.file.FileCollection import org.gradle.api.internal.artifacts.publish.ArchivePublishArtifact import org.gradle.api.plugins.BasePluginConvention -import org.gradle.api.plugins.JavaPluginConvention import org.gradle.api.tasks.javadoc.Javadoc import org.gradle.jvm.tasks.Jar import java.io.File @@ -65,7 +64,7 @@ fun Project.noDefaultJar() { } } -fun Project.runtimeJarArtifactBy(task: Task, artifactRef: T, body: ConfigurablePublishArtifact.() -> Unit = {}) { +fun Project.runtimeJarArtifactBy(task: Task, artifactRef: Any, body: ConfigurablePublishArtifact.() -> Unit = {}) { addArtifact("archives", task, artifactRef, body) addArtifact("runtimeJar", task, artifactRef, body) configurations.findByName("runtime")?.let { @@ -80,17 +79,17 @@ fun Project.runtimeJar(task: T, body: T.() -> Unit = {}): T { } return task.apply { setupPublicJar(project.the().archivesBaseName) - duplicatesStrategy = DuplicatesStrategy.EXCLUDE + setDuplicatesStrategy(DuplicatesStrategy.EXCLUDE) body() project.runtimeJarArtifactBy(this, this) } } -fun Project.runtimeJar(taskName: String = "jar", body: Jar.() -> Unit = {}): Jar = runtimeJar(getOrCreateTask(taskName, body)) +fun Project.runtimeJar(body: Jar.() -> Unit = {}): Jar = runtimeJar(getOrCreateTask("jar", body), { }) fun Project.sourcesJar(sourceSet: String? = "main", body: Jar.() -> Unit = {}): Jar = getOrCreateTask("sourcesJar") { - duplicatesStrategy = DuplicatesStrategy.EXCLUDE + setDuplicatesStrategy(DuplicatesStrategy.EXCLUDE) classifier = "sources" try { if (sourceSet != null) { @@ -107,7 +106,7 @@ fun Project.sourcesJar(sourceSet: String? = "main", body: Jar.() -> Unit = {}): fun Project.javadocJar(body: Jar.() -> Unit = {}): Jar = getOrCreateTask("javadocJar") { - duplicatesStrategy = DuplicatesStrategy.EXCLUDE + setDuplicatesStrategy(DuplicatesStrategy.EXCLUDE) classifier = "javadoc" tasks.findByName("javadoc")?.let{ it as Javadoc }?.takeIf { it.enabled }?.let { dependsOn(it) @@ -202,14 +201,14 @@ fun Jar.setupPublicJar(baseName: String, classifier: String = "") { } -fun Project.addArtifact(configuration: Configuration, task: Task, artifactRef: T, body: ConfigurablePublishArtifact.() -> Unit = {}) { +fun Project.addArtifact(configuration: Configuration, task: Task, artifactRef: Any, body: ConfigurablePublishArtifact.() -> Unit = {}) { artifacts.add(configuration.name, artifactRef) { builtBy(task) body() } } -fun Project.addArtifact(configurationName: String, task: Task, artifactRef: T, body: ConfigurablePublishArtifact.() -> Unit = {}) = +fun Project.addArtifact(configurationName: String, task: Task, artifactRef: Any, body: ConfigurablePublishArtifact.() -> Unit = {}) = addArtifact(configurations.getOrCreate(configurationName), task, artifactRef, body) fun Project.cleanArtifacts() { diff --git a/buildSrc/src/main/kotlin/embeddable.kt b/buildSrc/src/main/kotlin/embeddable.kt index 6e28fb69318..1c6a458f2fd 100644 --- a/buildSrc/src/main/kotlin/embeddable.kt +++ b/buildSrc/src/main/kotlin/embeddable.kt @@ -65,7 +65,7 @@ private fun Project.compilerShadowJar(taskName: String, body: ShadowJar.() -> Un return task(taskName) { destinationDir = File(buildDir, "libs") - duplicatesStrategy = DuplicatesStrategy.EXCLUDE + setDuplicatesStrategy(DuplicatesStrategy.EXCLUDE) from(compilerJar) body() } @@ -97,7 +97,7 @@ fun Project.embeddableCompilerDummyForDependenciesRewriting(taskName: String = " return task(taskName) { destinationDir = File(buildDir, "libs") - duplicatesStrategy = DuplicatesStrategy.EXCLUDE + setDuplicatesStrategy(DuplicatesStrategy.EXCLUDE) from(compilerDummyJar) configureEmbeddableCompilerRelocation(withJavaxInject = false) body() @@ -119,7 +119,7 @@ fun Project.rewriteDepsToShadedJar(originalJarTask: Jar, shadowJarTask: Jar, bod // which leads to the content of that JAR being excluded as well: exclude { it.file == compilerDummyJarFile } - classifier = null + classifier = "" body() } } diff --git a/buildSrc/src/main/kotlin/instrument.kt b/buildSrc/src/main/kotlin/instrument.kt index c8013297f94..15fe85c1323 100644 --- a/buildSrc/src/main/kotlin/instrument.kt +++ b/buildSrc/src/main/kotlin/instrument.kt @@ -105,12 +105,12 @@ open class IntelliJInstrumentCodeTask : ConventionTask() { get() = project.files(sourceSet!!.allSource.srcDirs.filter { !sourceSet!!.resources.contains(it) && it.exists() }) @get:OutputDirectory - var output: File? = null + lateinit var output: File @TaskAction fun instrumentClasses() { logger.info("input files are: ${originalClassesDirs?.joinToString("; ", transform = { "'${it.name}'${if (it.exists()) "" else " (does not exists)" }"})}") - output?.deleteRecursively() + output.deleteRecursively() copyOriginalClasses() val classpath = instrumentationClasspath!! diff --git a/buildSrc/src/main/kotlin/instrument.kt.181 b/buildSrc/src/main/kotlin/instrument.kt.181 index 5492bab019f..4ec7c458e33 100644 --- a/buildSrc/src/main/kotlin/instrument.kt.181 +++ b/buildSrc/src/main/kotlin/instrument.kt.181 @@ -105,12 +105,12 @@ open class IntelliJInstrumentCodeTask : ConventionTask() { get() = project.files(sourceSet!!.allSource.srcDirs.filter { !sourceSet!!.resources.contains(it) && it.exists() }) @get:OutputDirectory - var output: File? = null + lateinit var output: File @TaskAction fun instrumentClasses() { logger.info("input files are: ${originalClassesDirs?.joinToString("; ", transform = { "'${it.name}'${if (it.exists()) "" else " (does not exists)" }"})}") - output?.deleteRecursively() + output.deleteRecursively() copyOriginalClasses() val classpath = instrumentationClasspath!! diff --git a/buildSrc/src/main/kotlin/plugins/PublishedKotlinModule.kt b/buildSrc/src/main/kotlin/plugins/PublishedKotlinModule.kt index 53f140d66cb..8b34a14ff49 100644 --- a/buildSrc/src/main/kotlin/plugins/PublishedKotlinModule.kt +++ b/buildSrc/src/main/kotlin/plugins/PublishedKotlinModule.kt @@ -108,7 +108,7 @@ open class PublishedKotlinModule : Plugin { val password: String? by preparePublication.extra val repoUrl: String by preparePublication.extra - var repository: MavenRemoteRepository by Delegates.notNull() + var repository by Delegates.notNull() repositories { withConvention(MavenRepositoryHandlerConvention::class) { diff --git a/custom-dependencies/android-sdk/build.gradle.kts b/custom-dependencies/android-sdk/build.gradle.kts index 30a9d921cf1..7c613eb9866 100644 --- a/custom-dependencies/android-sdk/build.gradle.kts +++ b/custom-dependencies/android-sdk/build.gradle.kts @@ -41,10 +41,10 @@ fun unzipSdkTask( sdkName: String, sdkVer: String, destinationSubdir: String, coordinatesSuffix: String, additionalConfig: Configuration? = null, dirLevelsToSkipOnUnzip: Int = 0, ext: String = "zip", unzipFilter: CopySpec.() -> Unit = {} -): DefaultTask { +): Task { val id = "${sdkName}_$sdkVer" val cfg = configurations.create(id) - val dependency = "google:$sdkName:$sdkVer${coordinatesSuffix.takeIf{ it.isNotEmpty() }?.let { ":$it" } ?: ""}@$ext" + val dependency = "google:$sdkName:$sdkVer${coordinatesSuffix.takeIf { it.isNotEmpty() }?.let { ":$it" } ?: ""}@$ext" dependencies.add(cfg.name, dependency) val unzipTask = task("unzip_$id") { diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a95009c3b9e..115e6ac0aab 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.10-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/j2k/build.gradle.kts b/j2k/build.gradle.kts index 65a5678642d..3d6d8c1ce13 100644 --- a/j2k/build.gradle.kts +++ b/j2k/build.gradle.kts @@ -63,13 +63,11 @@ projectTest { testsJar() - val testForWebDemo by task { include("**/*JavaToKotlinConverterForWebDemoTestGenerated*") classpath = testSourceSet.runtimeClasspath workingDir = rootDir } -val cleanTestForWebDemo by tasks val test: Test by tasks test.apply { @@ -77,7 +75,4 @@ test.apply { dependsOn(testForWebDemo) } -val cleanTest by tasks -cleanTest.dependsOn(cleanTestForWebDemo) - ideaPlugin() diff --git a/j2k/build.gradle.kts.173 b/j2k/build.gradle.kts.173 index ed6e9311bc2..072c669fbee 100644 --- a/j2k/build.gradle.kts.173 +++ b/j2k/build.gradle.kts.173 @@ -61,13 +61,11 @@ projectTest { testsJar() - val testForWebDemo by task { include("**/*JavaToKotlinConverterForWebDemoTestGenerated*") classpath = testSourceSet.runtimeClasspath workingDir = rootDir } -val cleanTestForWebDemo by tasks val test: Test by tasks test.apply { @@ -75,7 +73,4 @@ test.apply { dependsOn(testForWebDemo) } -val cleanTest by tasks -cleanTest.dependsOn(cleanTestForWebDemo) - ideaPlugin() diff --git a/j2k/build.gradle.kts.as31 b/j2k/build.gradle.kts.as31 index 93f49d37b57..2c78e24535f 100644 --- a/j2k/build.gradle.kts.as31 +++ b/j2k/build.gradle.kts.as31 @@ -62,13 +62,11 @@ projectTest { testsJar() - val testForWebDemo by task { include("**/*JavaToKotlinConverterForWebDemoTestGenerated*") classpath = testSourceSet.runtimeClasspath workingDir = rootDir } -val cleanTestForWebDemo by tasks val test: Test by tasks test.apply { @@ -76,7 +74,4 @@ test.apply { dependsOn(testForWebDemo) } -val cleanTest by tasks -cleanTest.dependsOn(cleanTestForWebDemo) - ideaPlugin() diff --git a/j2k/build.gradle.kts.as32 b/j2k/build.gradle.kts.as32 index 0c92233ea7c..4dec0cd81ec 100644 --- a/j2k/build.gradle.kts.as32 +++ b/j2k/build.gradle.kts.as32 @@ -63,13 +63,11 @@ projectTest { testsJar() - val testForWebDemo by task { include("**/*JavaToKotlinConverterForWebDemoTestGenerated*") classpath = testSourceSet.runtimeClasspath workingDir = rootDir } -val cleanTestForWebDemo by tasks val test: Test by tasks test.apply { @@ -77,7 +75,4 @@ test.apply { dependsOn(testForWebDemo) } -val cleanTest by tasks -cleanTest.dependsOn(cleanTestForWebDemo) - ideaPlugin() diff --git a/j2k/build.gradle.kts.as33 b/j2k/build.gradle.kts.as33 index a5cad3636f3..9ddc7af7f31 100644 --- a/j2k/build.gradle.kts.as33 +++ b/j2k/build.gradle.kts.as33 @@ -63,13 +63,11 @@ projectTest { testsJar() - val testForWebDemo by task { include("**/*JavaToKotlinConverterForWebDemoTestGenerated*") classpath = testSourceSet.runtimeClasspath workingDir = rootDir } -val cleanTestForWebDemo by tasks val test: Test by tasks test.apply { @@ -77,7 +75,4 @@ test.apply { dependsOn(testForWebDemo) } -val cleanTest by tasks -cleanTest.dependsOn(cleanTestForWebDemo) - ideaPlugin() diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt index 336e48114ec..3f08eebf0df 100755 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt @@ -476,7 +476,7 @@ internal fun configureDefaultVersionsResolutionStrategy(project: Project, kotlin } else { configuration.resolutionStrategy.eachDependency { details -> val requested = details.requested - if (requested.group == "org.jetbrains.kotlin" && requested.version.isEmpty()) { + if (requested.group == "org.jetbrains.kotlin" && requested.version.isNullOrEmpty()) { details.useVersion(kotlinPluginVersion) } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinSoftwareComponent.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinSoftwareComponent.kt index 437b50d361d..c3129bd7c80 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinSoftwareComponent.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinSoftwareComponent.kt @@ -6,10 +6,7 @@ package org.jetbrains.kotlin.gradle.plugin.mpp import org.gradle.api.Project -import org.gradle.api.artifacts.Configuration -import org.gradle.api.artifacts.DependencyConstraint -import org.gradle.api.artifacts.ModuleDependency -import org.gradle.api.artifacts.PublishArtifact +import org.gradle.api.artifacts.* import org.gradle.api.attributes.AttributeContainer import org.gradle.api.attributes.Usage import org.gradle.api.capabilities.Capability @@ -80,7 +77,7 @@ internal class KotlinPlatformUsageContext( override fun getCapabilities(): Set = emptySet() // FIXME this is a stub for a function that is not present in the Gradle API that we compile against - fun getGlobalExcludes(): Set = emptySet() + override fun getGlobalExcludes(): Set = emptySet() } private fun rewriteMppDependenciesToTargetModuleDependencies( diff --git a/prepare/compiler/build.gradle.kts b/prepare/compiler/build.gradle.kts index 939e14ddf1a..3601b449255 100644 --- a/prepare/compiler/build.gradle.kts +++ b/prepare/compiler/build.gradle.kts @@ -88,15 +88,25 @@ dependencies { val packCompiler by task { configurations = listOf(fatJar) - duplicatesStrategy = DuplicatesStrategy.EXCLUDE + setDuplicatesStrategy(DuplicatesStrategy.EXCLUDE) destinationDir = File(buildDir, "libs") setupPublicJar(compilerBaseName, "before-proguard") from(fatJarContents) - afterEvaluate { - fatJarContentsStripServices.files.forEach { from(zipTree(it)) { exclude("META-INF/services/**") } } - fatJarContentsStripMetadata.files.forEach { from(zipTree(it)) { exclude("META-INF/jb/** META-INF/LICENSE") } } + + dependsOn(fatJarContentsStripServices) + from { + fatJarContentsStripServices.files.map { + zipTree(it).matching { exclude("META-INF/services/**") } + } + } + + dependsOn(fatJarContentsStripMetadata) + from { + fatJarContentsStripMetadata.files.map { + zipTree(it).matching { exclude("META-INF/jb/**", "META-INF/LICENSE") } + } } manifest.attributes["Class-Path"] = compilerManifestClassPath diff --git a/prepare/compiler/build.gradle.kts.173 b/prepare/compiler/build.gradle.kts.173 index 970fffd59f8..ae63f026056 100644 --- a/prepare/compiler/build.gradle.kts.173 +++ b/prepare/compiler/build.gradle.kts.173 @@ -88,15 +88,25 @@ dependencies { val packCompiler by task { configurations = listOf(fatJar) - duplicatesStrategy = DuplicatesStrategy.EXCLUDE + setDuplicatesStrategy(DuplicatesStrategy.EXCLUDE) destinationDir = File(buildDir, "libs") setupPublicJar(compilerBaseName, "before-proguard") from(fatJarContents) - afterEvaluate { - fatJarContentsStripServices.files.forEach { from(zipTree(it)) { exclude("META-INF/services/**") } } - fatJarContentsStripMetadata.files.forEach { from(zipTree(it)) { exclude("META-INF/jb/** META-INF/LICENSE") } } + + dependsOn(fatJarContentsStripServices) + from { + fatJarContentsStripServices.files.map { + zipTree(it).matching { exclude("META-INF/services/**") } + } + } + + dependsOn(fatJarContentsStripMetadata) + from { + fatJarContentsStripMetadata.files.map { + zipTree(it).matching { exclude("META-INF/jb/**", "META-INF/LICENSE") } + } } manifest.attributes["Class-Path"] = compilerManifestClassPath diff --git a/prepare/compiler/build.gradle.kts.181 b/prepare/compiler/build.gradle.kts.181 index 9ba6e63c171..1a74c965cfe 100644 --- a/prepare/compiler/build.gradle.kts.181 +++ b/prepare/compiler/build.gradle.kts.181 @@ -88,15 +88,25 @@ dependencies { val packCompiler by task { configurations = listOf(fatJar) - duplicatesStrategy = DuplicatesStrategy.EXCLUDE + setDuplicatesStrategy(DuplicatesStrategy.EXCLUDE) destinationDir = File(buildDir, "libs") setupPublicJar(compilerBaseName, "before-proguard") from(fatJarContents) - afterEvaluate { - fatJarContentsStripServices.files.forEach { from(zipTree(it)) { exclude("META-INF/services/**") } } - fatJarContentsStripMetadata.files.forEach { from(zipTree(it)) { exclude("META-INF/jb/** META-INF/LICENSE") } } + + dependsOn(fatJarContentsStripServices) + from { + fatJarContentsStripServices.files.map { + zipTree(it).matching { exclude("META-INF/services/**") } + } + } + + dependsOn(fatJarContentsStripMetadata) + from { + fatJarContentsStripMetadata.files.map { + zipTree(it).matching { exclude("META-INF/jb/**", "META-INF/LICENSE") } + } } manifest.attributes["Class-Path"] = compilerManifestClassPath