我在一个多模块的Kotlin项目中使用buildSrc模块到管理依赖项定义和版本。该模块使用kotlin-dsl,如build.gradle.kts中所示
plugins {
`kotlin-dsl`
}备选声明:
plugins {
id("org.gradle.kotlin.kotlin-dsl") version "0.16.2"
}我想使用相同的Kotlin版本编译buildSrc模块以及应用程序模块/s。
plugins {
`kotlin-dsl`
kotlin("jvm") version "1.2.31"
}然而,这会导致一个构建错误,这是讨论这里的。
解析插件id错误:'org.jetbrains.kotlin.jvm',版本:'1.2.31‘ 已经在类路径上的插件请求不能包含版本。
在整个项目中使用的Kotlin版本一旦使用,什么是只定义的方便方法?
相关
发布于 2019-04-26 09:43:37
每个Gradle版本都要与特定版本的
kotlin-dsl插件一起使用,并且不能保证任意Gradle版本和kotlin-dsl插件版本之间的兼容性。 在构建中使用kotlin-dsl插件的意外版本可能会导致很难诊断问题。 从Gradle 5.4开始,每当检测到意外版本的kotlin-dsl插件时,就会发出警告。
Paul Merlin @eskatos,25.04.2019
因此,我删除了 the version
plugins {
`kotlin-dsl`
}
repositories {
mavenCentral()
}发布于 2018-04-09 22:12:23
我知道的唯一方法是将它放入gradle.properties (或任何其他配置)中,并在settings.gradle.kts pluginManagement中读取它。如下所示:
pluginManagement {
repositories {
gradlePluginPortal()
}
resolutionStrategy {
eachPlugin {
if (requested.id.id.startsWith("org.jetbrains.kotlin")) {
useVersion(gradle.rootProject.extra["kotlin.version"] as String)
}
}
}
}发布于 2018-04-10 10:28:28
错误说明了自己:如果您已经在plugins块中指定插件版本,则无法在buildscript文件夹中指定插件的版本。
您可以将kotlinVersion放入gradle.properties中,并将符号链接buildSrc/gradle.propeties放到./gradle.properties中。
https://stackoverflow.com/questions/49522180
复制相似问题