如何解决使用胖子在运行时抛出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 举报,一经查实,本站将立刻删除。