Java 将spring应用程序(JAR)打包到spring引导应用程序中

Java 将spring应用程序(JAR)打包到spring引导应用程序中,java,maven,spring-boot,Java,Maven,Spring Boot,有一个spring应用程序“A”打包为JAR(带有maven),而应用程序“A”的POM文件包含一些定义的特定maven依赖项 在另一个打包为JAR的spring引导应用程序“B”中,添加了应用程序“A”的依赖项,但在执行“B”时,它对应用程序“A”中提到的依赖项抛出了几个ClassNotFound/NoClassDef错误 注意-应用程序“A”不是启动项目。这是一个使用maven构建的简单spring应用程序 请帮忙。请让我知道,如果我需要分享任何代码的w.r。提前感谢。Spring boot

有一个spring应用程序“A”打包为JAR(带有maven),而应用程序“A”的POM文件包含一些定义的特定maven依赖项

在另一个打包为JAR的spring引导应用程序“B”中,添加了应用程序“A”的依赖项,但在执行“B”时,它对应用程序“A”中提到的依赖项抛出了几个ClassNotFound/NoClassDef错误

注意-应用程序“A”不是启动项目。这是一个使用maven构建的简单spring应用程序


请帮忙。请让我知道,如果我需要分享任何代码的w.r。提前感谢。

Spring boot jar不是一个真正的jar,它是这里的核心问题。 它只是为了方便而打包为jar,但是如果您打开它(使用WinRaR/WinZip或任何其他程序),您将看到它没有jar结构,例如,所有依赖项都包含在jar中(请参阅BOOT-INF/lib)

所以,归根结底,如果A和B都是spring引导应用程序,您不能在它们之间建立依赖关系,那么它将无法工作

作为一个解决方案,考虑提取应该共享到第三个模块“C”中的代码,这些代码“C”将具有包装JAR,但本身不会是Spring Bug应用程序。


之后,让A和B都依赖于C,您就可以设置Spring boot jar并不是真正的jar,它是这里的核心问题。 它只是为了方便而打包为jar,但是如果您打开它(使用WinRaR/WinZip或任何其他程序),您将看到它没有jar结构,例如,所有依赖项都包含在jar中(请参阅BOOT-INF/lib)

所以,归根结底,如果A和B都是spring引导应用程序,您不能在它们之间建立依赖关系,那么它将无法工作

作为一个解决方案,考虑提取应该共享到第三个模块“C”中的代码,这些代码“C”将具有包装JAR,但本身不会是Spring Bug应用程序。


之后,让A和B都依赖于C,你就做好了

Hi Pinaki,几周前我遇到了这个spring引导依赖问题。问题源于将启动可执行JAR引入项目,而不是包含实际类文件的JAR。嗨,Pinaki,几周前我遇到了这个春季启动依赖问题。问题源于将启动可执行JAR引入项目,而不是包含实际类文件的JAR。