当我使用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) }
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在使用Kotlin Gradle插件时,如果想避免插件管理特定的依赖版本,特别是当您希望依赖于由BOM(Bill of Materials)管理的版本时,可以通过显式指定依赖项的确切版本来解决冲突。对于您的情况,您想要确保kotlin-stdlib
遵循BOM中定义的版本而不是插件指定的版本。
首先,确认BOM中kotlin-stdlib
的确切版本号。然后,在dependencies
块中直接指定该版本的kotlin-stdlib
,而不是通过kotlin("stdlib")
这种形式。这样可以绕过插件对版本的默认控制。
例如,如果BOM中kotlin-stdlib
的版本是1.3.50,您可以这样做:
plugins {
kotlin("jvm") version "1.2.50"
}
dependencies {
implementation(platform("some-bom:0.3")) // BOM管理依赖
// 显式指定stdlib的版本,以匹配BOM中的版本
implementation("org.jetbrains.kotlin:kotlin-stdlib:1.3.50")
}
通过这种方式,即使Kotlin插件有其自己的默认版本,您也能够强制项目使用BOM中声明的kotlin-stdlib
版本。请注意,这种方法可能会导致与Kotlin插件不完全兼容的问题,因为不同版本的Kotlin库可能与特定版本的编译器特性有关联,因此最好尽量保持所有Kotlin相关组件的版本一致,或者确保所选版本之间是兼容的。