使用胖子在运行时抛出java.lang.NoClassDefFoundError

问题描述

该应用的结构为多项目应用:

  • nova-app
  • nova-core
  • nova-data
  • ...

我能够构建和运行该应用程序,但是一旦该应用程序被请求触发,它将引发以下错误

Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.nova.data.tables.AuthorizationTokenTable

它抱怨的课程在nova-data中。

我认为这与通过胖子构建和运行应用程序有关。

构建命令:./gradlew clean stage

运行命令:java -jar nova-app/build/libs/nova-app-1.0.0-all.jar

nova-app 项目中的 build.gradle.kts 文件

import org.springframework.boot.gradle.tasks.bundling.BootJar
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar

plugins {
    id("org.springframework.boot") version "2.1.3.RELEASE"
    id("com.github.johnrengelman.shadow") version "5.1.0"

    // Apply the application plugin to add support for building a CLI application.
    java
    application
}

application {
    mainClassName = "com.nova.app.NovaKt"
}

tasks.withType<ShadowJar> {
    isZip64 = true
    mergeServiceFiles()
}

tasks.withType<Jar> {
    enabled = true
    manifest {
        attributes["Main-Class"] = application.mainClassName
    }
}

tasks.withType<BootJar> {
    archiveFileName.set("${this.archiveBaseName.get()}.${this.archiveExtension.get()}")
}

tasks.register("stage") {
    dependsOn("clean","shadowJar")
}

dependencies {
    "implementation"(project(":nova-authentication"))
    "implementation"(project(":nova-chat"))
    "implementation"(project(":nova-commons-app"))
    "implementation"(project(":nova-core"))
    "implementation"(project(":nova-data"))
    "implementation"(project(":nova-photo"))
    "implementation"(project(":nova-rest"))
    "implementation"(project(":nova-search"))

    "implementation"("org.apache.commons:commons-collections4:4.4")
}

请让我知道这是怎么回事。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)