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.js" version "${'$'}kotlin_version"
|
||||
id "org.jetbrains.kotlin.multiplatform" version "${'$'}kotlin_version"
|
||||
id "org.jetbrains.kotlin.test.fixes.android" version "${'$'}kotlin_version"
|
||||
}
|
||||
|
||||
resolutionStrategy {
|
||||
@@ -48,3 +49,44 @@ internal val DEFAULT_GROOVY_SETTINGS_FILE =
|
||||
}
|
||||
}
|
||||
""".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 settingsGradleKts = resolve("settings.gradle.kts")
|
||||
val fileToUpdate = when {
|
||||
Files.exists(settingsGradle) -> settingsGradle
|
||||
Files.exists(settingsGradleKts) -> settingsGradleKts
|
||||
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(
|
||||
when {
|
||||
Files.exists(settingsGradle) -> settingsGradle.modify {
|
||||
if (!it.contains("pluginManagement {")) {
|
||||
"""
|
||||
$DEFAULT_GROOVY_SETTINGS_FILE
|
||||
|
||||
$settingsContent
|
||||
""".trimIndent()
|
||||
)
|
||||
|$DEFAULT_GROOVY_SETTINGS_FILE
|
||||
|
|
||||
|$it
|
||||
|""".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