【发布时间】:2021-04-06 04:19:07
【问题描述】:
我知道这是一个常见问题,我很尴尬地问这个问题,但我不知道为什么我无法加载我的多模块 Springboot 应用程序的主类。
完整的堆栈跟踪:
Exception in thread "main" java.lang.ClassNotFoundException: space.forloop.addon.app.Main
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:151)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:46)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:107)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
A 有一个根级 gradle.build 文件
plugins {
id 'org.springframework.boot' version '2.4.1'
id 'io.spring.dependency-management' version '1.0.10.RELEASE'
id 'java'
}
repositories {
mavenCentral()
}
bootJar {
mainClass = 'space.forloop.addon.app.Main'
}
def javaProjects = [
'addon-sync-app',
// Removed, not important
]
javaProjects.each {
name ->
project(":$name") {
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'java'
repositories {
// Removed, not important
}
dependencies {
// Removed, not important
}
}
}
在包模块 addon-sync-app 我有另一个 build.gradle 文件,它只有:
apply plugin: 'org.springframework.boot'
dependencies {
// Removed, not important
}
查看Configuring the Main Class 的文档,我确定添加:
bootJar {
mainClass = 'space.forloop.addon.app.Main'
}
到根gradle.build 文件在这里是正确的,但似乎不是。还有什么我可能错过的吗?
【问题讨论】:
标签: java spring-boot gradle multi-module