gpt4 book ai didi

java - 创建了一个自定义 Spring boot layoutFactory,现在无法启动我的 Spring Boot 应用程序

转载 作者:行者123 更新时间:2023-11-30 06:52:08 36 4
gpt4 key购买 nike

这是我得到的错误 -

Caused by: java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication

如果我取出layoutFactory选项,我就可以启动启动应用程序。

在我的 build.gradle 中,我有

springBoot  {
mainClass = "com.mycompany.Application"
layoutFactory = new CustomLayoutFactory()

}

class CustomLayoutFactory implements LayoutFactory {

@Override
Layout getLayout(File source) {
if (source?.getName().toLowerCase().endsWith('.jar')) {
return new Layouts.Jar() {
@Override
public String getLibraryDestination(String libraryName, LibraryScope scope) {
return "lib/";
}

@Override
public String getRepackagedClassesLocation() {
return "";
}
};
}

return Layouts.forFile(source);
}

最佳答案

您正在使用自定义 jar 布局,将嵌套 jar 打包在 lib 中,而不是 BOOT-INF/lib 中,但是,据我所知,您'我们仍然使用 Spring Boot 默认加载器中的 Spring Boot 的 JarLauncher,它希望在 BOOT-INF/lib 中找到 jar。

您需要实现 CustomLoaderLayout 并在 jar 的根目录中提供您自己的加载器类,该类知道在 lib 中查找,而不是在 BOOT-INF/lib 中查找

关于java - 创建了一个自定义 Spring boot layoutFactory,现在无法启动我的 Spring Boot 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42541422/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com