Support modifying 'setting.gradle.kts' as well.
Test dsl will update 'settings.gradle.kts' with required plugin management block. ^KT-45745 In Progress
This commit is contained in:
+42
@@ -24,6 +24,7 @@ internal val DEFAULT_GROOVY_SETTINGS_FILE =
|
|||||||
id "org.jetbrains.kotlin.android" version "${'$'}kotlin_version"
|
id "org.jetbrains.kotlin.android" version "${'$'}kotlin_version"
|
||||||
id "org.jetbrains.kotlin.js" version "${'$'}kotlin_version"
|
id "org.jetbrains.kotlin.js" version "${'$'}kotlin_version"
|
||||||
id "org.jetbrains.kotlin.multiplatform" version "${'$'}kotlin_version"
|
id "org.jetbrains.kotlin.multiplatform" version "${'$'}kotlin_version"
|
||||||
|
id "org.jetbrains.kotlin.test.fixes.android" version "${'$'}kotlin_version"
|
||||||
}
|
}
|
||||||
|
|
||||||
resolutionStrategy {
|
resolutionStrategy {
|
||||||
@@ -48,3 +49,44 @@ internal val DEFAULT_GROOVY_SETTINGS_FILE =
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
""".trimIndent()
|
""".trimIndent()
|
||||||
|
|
||||||
|
@Language("kts")
|
||||||
|
internal val DEFAULT_KOTLIN_SETTINGS_FILE =
|
||||||
|
"""
|
||||||
|
pluginManagement {
|
||||||
|
repositories {
|
||||||
|
mavenLocal()
|
||||||
|
mavenCentral()
|
||||||
|
google()
|
||||||
|
gradlePluginPortal()
|
||||||
|
}
|
||||||
|
|
||||||
|
val kotlin_version: String by settings
|
||||||
|
val android_tools_version: String by settings
|
||||||
|
plugins {
|
||||||
|
id("org.jetbrains.kotlin.jvm") version kotlin_version
|
||||||
|
id("org.jetbrains.kotlin.kapt") version kotlin_version
|
||||||
|
id("org.jetbrains.kotlin.android") version kotlin_version
|
||||||
|
id("org.jetbrains.kotlin.js") version kotlin_version
|
||||||
|
id("org.jetbrains.kotlin.multiplatform") version kotlin_version
|
||||||
|
id("org.jetbrains.kotlin.test.fixes.android") version kotlin_version
|
||||||
|
}
|
||||||
|
|
||||||
|
resolutionStrategy {
|
||||||
|
eachPlugin {
|
||||||
|
when (requested.id.id) {
|
||||||
|
"com.android.application",
|
||||||
|
"com.android.library",
|
||||||
|
"com.android.test",
|
||||||
|
"com.android.dynamic-feature",
|
||||||
|
"com.android.asset-pack",
|
||||||
|
"com.android.asset-pack-bundle",
|
||||||
|
"com.android.lint",
|
||||||
|
"com.android.instantapp",
|
||||||
|
"com.android.feature" -> useModule("com.android.tools.build:gradle:${'$'}android_tools_version")
|
||||||
|
"kotlin-dce-js" -> useModule("org.jetbrains.kotlin:kotlin-gradle-plugin:${'$'}kotlin_version")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
""".trimIndent()
|
||||||
|
|||||||
+23
-22
@@ -290,32 +290,33 @@ private fun Path.addDefaultBuildFiles() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun Path.addPluginManagementToSettings() {
|
internal fun Path.addPluginManagementToSettings() {
|
||||||
val settingsGradle = resolve("settings.gradle")
|
val settingsGradle = resolve("settings.gradle")
|
||||||
val settingsGradleKts = resolve("settings.gradle.kts")
|
val settingsGradleKts = resolve("settings.gradle.kts")
|
||||||
val fileToUpdate = when {
|
when {
|
||||||
Files.exists(settingsGradle) -> settingsGradle
|
Files.exists(settingsGradle) -> settingsGradle.modify {
|
||||||
Files.exists(settingsGradleKts) -> settingsGradleKts
|
if (!it.contains("pluginManagement {")) {
|
||||||
else -> null
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fileToUpdate == null) {
|
|
||||||
settingsGradle.toFile().writeText(DEFAULT_GROOVY_SETTINGS_FILE)
|
|
||||||
} else {
|
|
||||||
val settingsContent = fileToUpdate.toFile().readText()
|
|
||||||
if (!settingsContent
|
|
||||||
.lines()
|
|
||||||
.first { !it.startsWith("//") }
|
|
||||||
.startsWith("pluginManagement {")
|
|
||||||
) {
|
|
||||||
fileToUpdate.toFile().writeText(
|
|
||||||
"""
|
"""
|
||||||
$DEFAULT_GROOVY_SETTINGS_FILE
|
|$DEFAULT_GROOVY_SETTINGS_FILE
|
||||||
|
|
|
||||||
$settingsContent
|
|$it
|
||||||
""".trimIndent()
|
|""".trimMargin()
|
||||||
)
|
} else {
|
||||||
|
it
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Files.exists(settingsGradleKts) -> settingsGradleKts.modify {
|
||||||
|
if (!it.contains("pluginManagement {")) {
|
||||||
|
"""
|
||||||
|
|$DEFAULT_KOTLIN_SETTINGS_FILE
|
||||||
|
|
|
||||||
|
|$it
|
||||||
|
""".trimMargin()
|
||||||
|
} else {
|
||||||
|
it
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else -> settingsGradle.toFile().writeText(DEFAULT_GROOVY_SETTINGS_FILE)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user