gradle 依赖项解析为DependencyHandlerScorpe类型,而不是KotlinDependencyHandler类型

bttbmeg0  于 2023-01-02  发布在  Kotlin
关注(0)|答案(1)|浏览(183)

我目前在我的一个项目的build.gradle.kts文件中观察到以下非常奇怪的行为:

基本上,我有两个模块,相同的导入在一个模块中工作,但在另一个模块中不工作。经过仔细检查,我注意到了我认为可能是问题的根源,尽管我不知道为什么会发生这种情况,也不知道如何应对。
我要做的核心是运行此导入:

kotlin {
    [...]
    sourceSets {
        val commonMain by getting
            dependencies {
                implementation(Dependencies.eventBus)
            }
        [...]
        }
    }
}

在左边的模块中,这样做很好,但是在右边的模块中,就不行了,我可以观察到的不同之处是,由于某种奇怪的原因,getting在语法上高亮显示为紫色,而不是右边的黄色,dependencies的类型为this: DependencyHandlerScope,而不是this: KotlinDependencyHandler
现在真正奇怪的是在其下的下一个块(commonTest)中,它再次“正确”地运行(如:类似于左侧模块,导入在其中工作)。
这是怎么回事?这真的是我的导入无法解析的原因吗?如果是这样,我该怎么做?

siv3szwd

siv3szwd1#

好吧,我花了点时间研究之后,发现了问题:在那一个例子中,我在dependencies块周围缺少了一对花括号,所以它应该是这样的,在视觉上非常相似,但在语法上显然有很大的区别:

kotlin {
    [...]
    sourceSets {
        val commonMain by getting {
            dependencies {
                implementation(Dependencies.eventBus)
            }
        }
        [...]
    }
}

相关问题