如何使Kotlin Gradle插件不管理版本
当我使用Kotlin Gradle插件并同时使用Kotlin BOM时,插件版本似乎优先于如何使Kotlin Gradle插件不管理版本,gradle,gradle-kotlin-dsl,Gradle,Gradle Kotlin Dsl,当我使用Kotlin Gradle插件并同时使用Kotlin BOM时,插件版本似乎优先于Kotlin stdlib,如何使插件不管理我的依赖关系 plugins { kotlin("jvm") version "1.2.50" } dependencies { implementation(platform("some-bom:0.3")) // this has API dependency to kotlin-bom 1.3.50 implemen
Kotlin stdlib
,如何使插件不管理我的依赖关系
plugins {
kotlin("jvm") version "1.2.50"
}
dependencies {
implementation(platform("some-bom:0.3")) // this has API dependency to kotlin-bom 1.3.50
implementation(kotlin("stdlib")) // this resolves to 1.2.50 (plugin version) instead of 1.3.50 (BOM version)
}
项目正在使用Gradle 5.2.1,我无法复制它,它看起来像一个bug。作为一种解决方法,您可以通过指定
isForce=true
:
implementation("org.jetbrains.kotlin:kotlin-stdlib:1.2.50") {
isForce = true
}
implementation("org.jetbrains.kotlin:kotlin-stdlib-common:1.3.10"){
isForce = true
}
isForce
不是可传递的,因此必须使用isForce
标志true显式指定所有可传递的kotlin依赖项,或创建一个:
并将其添加到依赖项块:
dependencies {
components.all(KotlinAlignmentRule::class.java)
implementation(platform("some-bom:0.3"))
implementation("org.jetbrains.kotlin:kotlin-stdlib:1.2.50") {
isForce = true
}
}
最后一个解决方案是最好的。您使用的是哪种渐变版本?这在5.2.1中是可复制的。请附加依赖项渐变命令的输出。我想您误解了这个问题,我不想覆盖BOM。Kotlin插件在没有我控制的情况下覆盖了我的BOM,我想阻止它,事实上,我本可以更仔细地阅读这个问题。是否可以附加
依赖项gradle命令的输出?
dependencies {
components.all(KotlinAlignmentRule::class.java)
implementation(platform("some-bom:0.3"))
implementation("org.jetbrains.kotlin:kotlin-stdlib:1.2.50") {
isForce = true
}
}