Как исправить «Неразрешенную ссылку: HttpClient» с ориентацией на ядро ​​ktor-client linuxX64 - PullRequest
0 голосов
/ 11 мая 2019

Я пытаюсь создать приложение командной строки Kotlin Multiplatform для linuxX64 на первом этапе. Поэтому я хотел построить клиент на основе Ktor, который используется в общем модуле.

Вот моя довольно простая настройка:

Обзор версии

  • ктор 1.1.5
  • Мультиплатформа Kotlin 1.3.31
  • Gradle 5.3.1

build.gradle.kts

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

repositories {
    mavenCentral()
    maven { url = uri("https://kotlin.bintray.com/ktor") }
}

kotlin {
    linuxX64("linux") {
        binaries {
            executable()
        }
    }

    sourceSets {
        val commonMain by getting {
            dependencies {
                implementation(kotlin("stdlib-common"))
                api("io.ktor:ktor-client-core:1.1.5")
            }
        }

        val linuxMain by getting {
            dependsOn(commonMain)
            dependencies {
                api("io.ktor:ktor-client-curl:1.1.5")
            }
        }
    }
}

SRC / linuxMain / Котлин / Main.kt

fun main(){
    val client = MyClient()
    client.execute()
}

SRC / commonMain / Котлин / MyClient.kt

import io.ktor.client.*

class MyClient {

    private val client = HttpClient()

    fun execute() {
        //do something with Ktor client
    }
}

При сборке проекта возникает следующая проблема сборки:

11:15:21: Executing task 'build'...


> Configure project :
Kotlin Multiplatform Projects are an experimental feature.

> Task :wrapper

BUILD SUCCESSFUL in 0s
1 actionable task: 1 executed

> Configure project :
Kotlin Multiplatform Projects are an experimental feature.

> Task :compileKotlinLinux FAILED
e: .../src/commonMain/kotlin/MyClient.kt: (1, 8): Unresolved reference: io
e: .../src/commonMain/kotlin/MyClient.kt: (5, 26): Unresolved reference: HttpClient

Я новичок в Kotlin Native / Mutliplatform и Ktor. Так что терпите меня, если это моя установка неверна ...

1 Ответ

0 голосов
/ 11 мая 2019

Добавление enableFeaturePreview("GRADLE_METADATA") в settings.gradle.kts исправило проблему сборки. Я только что сделал успешный HTTP-вызов с двоичным файлом linuxX64, используя ktor-client-curl :-)

...