【问题标题】:kotlin-compiler-embeddable missing within gradle buildgradle build 中缺少 kotlin-compiler-embeddable
【发布时间】:2020-11-16 16:33:00
【问题描述】:

我正在尝试设置多项目 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 部分中的存储库吗?

是什么导致了上面的错误?

【问题讨论】:

标签: kotlin gradle


【解决方案1】:

看起来您在subproject 部分完成的repositories { ... } 配置就足够了,但它仅适用于 supbrojects 而不是根项目本身(也应用了 Kotlin 插件,其任务 @987654324 @ 失败)。

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-09
    • 1970-01-01
    • 1970-01-01
    • 2019-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多