2

我正在尝试构建一个 Kotlin 应用程序,但是即使构建成功,我也会遇到下面的错误。我做错了什么?

▶ java -jar build/libs/app-0.1.jar
22:10:02.122 [main] INFO  io.micronaut.runtime.Micronaut - No embedded container found. Running as CLI application

这是我的构建状态:

▶ ./gradlew assemble

BUILD SUCCESSFUL in 3s
14 actionable tasks: 1 executed, 13 up-to-date

这是我的 gradle.build 文件的一部分:

apply from: "dependencies.gradle"
apply from: "protobuf.gradle"

version "0.1"
group "app"
mainClassName = "app.Application"

dependencies {
    compile "ch.qos.logback:logback-classic:1.2.3"
}

jar {
    manifest {
        attributes "Main-Class": mainClassName
    }
    from {
        configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
    }
}
4

2 回答 2

1

我有一个类似的问题:

  1. 我能够从 IDE 运行代码,但无法使用应用程序运行 Docker 容器
  2. compile 'io.micronaut:micronaut-http-server-netty:1.1.0'在我的build.gradle.

另外我正在使用shadowJar插件并且存在问题。添加:

shadowJar {
    mergeServiceFiles()
}

解决了这个问题。它将资源中的条目META-INF/services转换为单个资源。我的阴影jar文件包含此文件夹中的许多条目。

于 2019-04-22T20:26:57.657 回答
0

如果没有看到该项目,很难确定,但可能导致该问题的一件事是不依赖io.micronaut:micronaut-http-server-netty. 一个新创建的应用程序将在build.gradle...

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlinVersion}"
    compile "org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}"
    compile "io.micronaut:micronaut-runtime"
    compile "io.micronaut:micronaut-http-client"

    // Make Sure You Have This...
    compile "io.micronaut:micronaut-http-server-netty"

    kapt "io.micronaut:micronaut-inject-java"
    kapt "io.micronaut:micronaut-validation"
    kaptTest "io.micronaut:micronaut-inject-java"
    runtime "ch.qos.logback:logback-classic:1.2.3"
    runtime "com.fasterxml.jackson.module:jackson-module-kotlin:2.9.4.1"
    testCompile "org.junit.jupiter:junit-jupiter-api:5.1.0"
    testCompile "org.jetbrains.spek:spek-api:1.1.5"
    testRuntime "org.junit.jupiter:junit-jupiter-engine:5.1.0"
    testRuntime "org.jetbrains.spek:spek-junit-platform-engine:1.1.5"
}
于 2018-12-26T17:58:41.223 回答