Add a switch that disables dependencies rewriting in POMs
This covers the cases when a user knows what they do and doesn't want anything to do any changes to the POMs, e.g. they want to manually replace all of the dependencies, so they need the original dependencies.
This commit is contained in:
+34
-3
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.konan.target.CompilerOutputKind
|
||||
import org.jetbrains.kotlin.konan.target.HostManager
|
||||
import org.junit.Assert
|
||||
import org.junit.Test
|
||||
import java.io.File
|
||||
import java.lang.StringBuilder
|
||||
import java.util.jar.JarFile
|
||||
import java.util.zip.ZipFile
|
||||
@@ -1272,8 +1273,6 @@ class NewMultiplatformIT : BaseGradleIT() {
|
||||
"<version>42</version>"
|
||||
)
|
||||
if (withMetadata) {
|
||||
// Check that the external dependency that was resolved with metadata is written to the POM as the artifactId it
|
||||
// resolved to:
|
||||
assertFileContains(
|
||||
"repo/com/exampleapp/sample-app-jvm8/1.0/sample-app-jvm8-1.0.pom",
|
||||
"<groupId>com.external.dependency</groupId>",
|
||||
@@ -1287,7 +1286,39 @@ class NewMultiplatformIT : BaseGradleIT() {
|
||||
assertTrue { "\"group\":\"com.example\",\"module\":\"sample-lib-multiplatform\"" in moduleMetadata }
|
||||
assertTrue { "\"group\":\"com.external.dependency\",\"module\":\"external\"" in moduleMetadata }
|
||||
}
|
||||
assertFileExists("repo/foo/bar/42/bar-42.jar")
|
||||
}
|
||||
|
||||
// Check that a user can disable rewriting of MPP dependencies in the POMs:
|
||||
build("publish", "-Pkotlin.mpp.keepMppDependenciesIntactInPoms=true") {
|
||||
assertSuccessful()
|
||||
assertFileContains(
|
||||
"repo/com/exampleapp/sample-app-nodejs/1.0/sample-app-nodejs-1.0.pom",
|
||||
"<groupId>com.example</groupId>",
|
||||
if (withMetadata)
|
||||
"<artifactId>sample-lib-multiplatform</artifactId>"
|
||||
else
|
||||
"<artifactId>sample-lib</artifactId>"
|
||||
,
|
||||
"<version>1.0</version>"
|
||||
)
|
||||
assertFileContains(
|
||||
"repo/com/exampleapp/sample-app-jvm8/1.0/sample-app-jvm8-1.0.pom",
|
||||
"<groupId>com.example</groupId>",
|
||||
if (withMetadata)
|
||||
"<artifactId>sample-lib-multiplatform</artifactId>"
|
||||
else
|
||||
"<artifactId>sample-lib</artifactId>"
|
||||
,
|
||||
"<version>1.0</version>"
|
||||
)
|
||||
if (withMetadata) {
|
||||
assertFileContains(
|
||||
"repo/com/exampleapp/sample-app-jvm8/1.0/sample-app-jvm8-1.0.pom",
|
||||
"<groupId>com.external.dependency</groupId>",
|
||||
"<artifactId>external</artifactId>",
|
||||
"<version>1.2.3</version>"
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+3
-1
@@ -18,7 +18,6 @@ package org.jetbrains.kotlin.gradle.plugin
|
||||
|
||||
import org.gradle.api.Project
|
||||
import org.jetbrains.kotlin.gradle.dsl.Coroutines
|
||||
import org.jetbrains.kotlin.gradle.report.BuildReportMode
|
||||
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
|
||||
import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||
@@ -80,6 +79,9 @@ internal class PropertiesProvider(private val project: Project) {
|
||||
val useFallbackCompilerSearch: Boolean?
|
||||
get() = booleanProperty("kotlin.useFallbackCompilerSearch")
|
||||
|
||||
val keepMppDependenciesIntactInPoms: Boolean?
|
||||
get() = booleanProperty("kotlin.mpp.keepMppDependenciesIntactInPoms")
|
||||
|
||||
/**
|
||||
* Enables parallel tasks execution within a project with Workers API.
|
||||
* Does not enable using actual worker proccesses
|
||||
|
||||
+4
-1
@@ -205,7 +205,10 @@ class KotlinMultiplatformPlugin(
|
||||
(this as MavenPublicationInternal).publishWithOriginalFileName()
|
||||
artifactId = variant.defaultArtifactId
|
||||
|
||||
pom.withXml { xml -> project.rewritePomMppDependenciesToActualTargetModules(xml, variant) }
|
||||
pom.withXml { xml ->
|
||||
if (PropertiesProvider(project).keepMppDependenciesIntactInPoms != true)
|
||||
project.rewritePomMppDependenciesToActualTargetModules(xml, variant)
|
||||
}
|
||||
}
|
||||
|
||||
(variant as? KotlinTargetComponentWithPublication)?.publicationDelegate = variantPublication
|
||||
|
||||
Reference in New Issue
Block a user