gradle构建中缺少kotlin编译器可嵌入性



我正在尝试设置一个多项目gradle/kotlin构建,但我得到了以下错误:

Could not determine the dependencies of task ':compileKotlin'.
> Could not resolve all files for configuration ':kotlinCompilerClasspath'.
> Cannot resolve external dependency org.jetbrains.kotlin:kotlin-compiler-embeddable:1.4.10 because no repositories are defined.
Required by:
project :

奇怪的是空的project :

我的简化build.gradle.kts看起来像这样:

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
base
kotlin("jvm") version "1.4.10"
}
buildscript {
extra["kotlin_version"] = "1.4.10"
repositories {
jcenter()
mavenCentral()
}
}
subprojects {
apply(plugin = "kotlin")
repositories {
jcenter()
mavenCentral()
}
tasks.compileKotlin {
kotlinOptions.jvmTarget = "11"
}
tasks.compileTestKotlin {
kotlinOptions.jvmTarget = "11"
}
dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib:${rootProject.extra["kotlin_version"]}")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:${rootProject.extra["kotlin_version"]}")
}
}

我是否需要复制buildscript部分中的存储库?

是什么导致了上述错误?

subproject部分中完成的repositories { ... }配置似乎已经足够了,但它只应用于子项目,而不应用于根项目本身(该项目也应用了Kotlin插件,其任务:compileKotlin失败(。

有两种方法可以解决这个问题。

首先,您可以将repositories { ... }部分从subprojects { ... }移动到一个新的块allprojects { ... }(因此也应用于根项目(。

或者,如果你在根项目中实际上不需要Kotlin插件(即你没有Kotlin代码(,你可以在插件声明中添加.apply(false)

plugins {
kotlin("jvm").version("1.4.10").apply(false)
}

相关内容

  • 没有找到相关文章

最新更新