如何使Kotlin Gradle插件不管理版本

如何使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 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
        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
    }
}