Intellij自动完成在多平台库依赖项上失败

时间:2020-01-14 09:22:02

标签: kotlin intellij-idea kotlin-multiplatform

我创建了一个多平台库,该库在另一个多平台项目中使用。包含依赖项后,我可以使用commonMain中的库而不会出现问题,并且所有目标的构建都不会出错。但是,intellij自动完成功能不了解我的新类型。我已使缓存无效,并多次重新启动了应用程序,但它找不到该类型。有人遇到这个吗?

Intellij reports errors

but gradle shows success

以防万一,这是我的build.gradle.kts:

import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack

buildscript {
    repositories {
        jcenter()
    }
}

plugins {
    kotlin("multiplatform") version "1.3.61"
}

repositories {
    jcenter()
    maven(  "https://dl.bintray.com/kotlin/ktor" )
    mavenCentral()
    mavenLocal()
}

val ktor_version = "1.1.3"
val logback_version = "1.2.3"

kotlin {
    js {
        browser {  }
    }
    jvm {
        compilations.named("main") {
            tasks.getByName<Copy>(processResourcesTaskName) {
                dependsOn("jsBrowserWebpack")
                tasks.named<KotlinWebpack>("jsBrowserWebpack") {
                    from(entry.name, destinationDirectory)
                }
            }
        }
    }

    sourceSets {
        val commonMain by getting {
            dependencies {
                implementation(kotlin("stdlib-common"))
                api("github.fatalcatharsis:constraint:1.0-SNAPSHOT")
            }
        }

        val commonTest by getting {
            dependencies {
                implementation(kotlin("test-common"))
                implementation(kotlin("test-annotations-common"))
            }
        }

        val jvmMain by getting {
            dependencies {
                implementation( kotlin("stdlib-jdk8"))
                implementation( "io.ktor:ktor-server-netty:$ktor_version")
                implementation( "io.ktor:ktor-html-builder:$ktor_version")
                implementation( "ch.qos.logback:logback-classic:$logback_version")
            }
        }

        val jvmTest by getting {
            dependencies {
                implementation(kotlin("test"))
                implementation(kotlin("test-testng"))
            }
        }

        val jsMain by getting {
            dependencies {
                implementation( kotlin("stdlib-js"))
            }
        }

        val jsTest by getting {
            dependencies {
                implementation( kotlin("test-js"))
            }
        }
    }
}

tasks.register<JavaExec>("run") {
    dependsOn("jvmJar")
    group = "application"
    main = "sample.SampleJvmKt"
    val t = tasks.named<Jar>("jvmJar")

    classpath(configurations.named("jvmRuntimeClasspath"), t.get() )
}

0 个答案:

没有答案