Как запустить приложение ktor? - PullRequest
1 голос
/ 15 февраля 2020

Я создал приложение Ktor с Gradle и следовал учебному пособию по https://ktor.io/quickstart/quickstart/gradle.html#initial.
В конце написано:

И затем go Для запуска -> Изменить конфигурации выберите конфигурацию blog.BlogAppKt и измените ее Основной класс на io.ktor.server.netty.EngineMain

Теперь, когда мы запустим новую конфигурацию, приложение запустится снова.

Я ищу опцию, но не могу ее найти:

enter image description here

Файл Gradle выглядит следующим образом:

plugins {
    application
    kotlin("jvm") version "1.3.61"
}

group = "org.example"
version = "1.0-SNAPSHOT"


val ktor_version = "1.3.0"

repositories {
    mavenCentral()
    jcenter()
}

dependencies {
    implementation(kotlin("stdlib-jdk8"))
    compile("io.ktor:ktor-server-netty:$ktor_version")
    compile("io.ktor:ktor-server-core:$ktor_version")
    compile("ch.qos.logback:logback-classic:1.2.3")
    testCompile(group = "junit", name = "junit", version = "4.12")
}

tasks {
    compileKotlin {
        kotlinOptions.jvmTarget = "1.8"
    }
    compileTestKotlin {
        kotlinOptions.jvmTarget = "1.8"
    }
}

application {
    mainClassName = "io.ktor.server.netty.EngineMain"
}

Обновление

Я попробовал следующую конфигурацию:

enter image description here

Но как можно, есть сообщение об ошибке.

Что мне нужно добавить, чтобы запустить приложение Ktor?

Ответы [ 5 ]

1 голос
/ 25 апреля 2020

Вы можете вручную запустить функцию Main, после чего она станет доступной

1 голос
/ 15 февраля 2020

Вам необходимо создать новую конфигурацию запуска из шаблона приложения, а не из шаблона Kotlin. (И затем заполните поля Main class и Use classpath of module)

source: https://ktor.io/servers/engine.html#running -приложение изнутри-ide

1 голос
/ 15 февраля 2020

Если его там нет, создайте новый с помощью кнопки «плюс».

Вы можете выбрать kotlin, а затем заполнить основной класс и т. Д. c.

0 голосов
/ 17 февраля 2020

Я полагаю, вы столкнулись с известной ошибкой . См. Комментарии , начинающиеся здесь .

Когда вы используете JDK 9 или новее, вы увидите эту трассировку стека, если вы запустите эту конфигурацию:

java.lang.module.ResolutionException: Modules ktor.http.jvm and ktor.server.core export package io.ktor.http to module ktor.http.cio.jvm
    at java.base/java.lang.module.Resolver.resolveFail(Resolver.java:885)
    at java.base/java.lang.module.Resolver.failTwoSuppliers(Resolver.java:797)
    at java.base/java.lang.module.Resolver.checkExportSuppliers(Resolver.java:718)
    at java.base/java.lang.module.Resolver.finish(Resolver.java:362)
    at java.base/java.lang.module.Configuration.<init>(Configuration.java:141)
    at java.base/java.lang.module.Configuration.resolveAndBind(Configuration.java:316)
    at java.base/java.lang.module.ModuleDescriptor$1.resolveAndBind(ModuleDescriptor.java:2693)
    at java.base/jdk.internal.module.ModuleBootstrap.boot(ModuleBootstrap.java:361)
    at java.base/java.lang.ClassLoader.initializeClassLoaders(ClassLoader.java:210)
    at java.base/java.lang.Thread.initialize(Thread.java:428)
    at java.base/java.lang.Thread.<init>(Thread.java:153)

Если вы переключитесь до JDK 8, тогда вы можете увидеть ошибку в диалоговом окне конфигурации запуска, но приложение запустится.

0 голосов
/ 15 февраля 2020

Может быть проще установить плагин Ktor на intellij. Это первое, что я обычно делаю, когда начинаю проект Ktor.

...