Spring Boot应用程序在作为JAR运行时无法看到Bean

4
我的Spring Boot Web应用程序在Eclipse中运行时可以正常工作,但是当我尝试将其作为可执行jar文件运行时,它无法注册任何bean。配置都是使用注释标记的,没有xml配置文件。我使用了“mvn clean compile”和“mvn package”命令生成jar包。有人遇到过类似的问题或有任何想法吗?谢谢。

1
有相应的错误信息吗? - jlewkovich
2个回答

3

可执行的jar包不能包含嵌套的jar包,因此需要解决这个限制。一种常见的方法是对jar包进行"shade"(即解压所有的jar包,然后打包成单个jar包)。

Spring-boot采用不同的方式,依赖于自定义的maven重新打包插件和Spring Boot Loader模块处理。通常情况下,它能正常工作,但是根据文档:

spring-boot-starter-parent POM 包括了绑定重新打包目标的配置。如果您没有使用父 POM,则需要自己声明此配置。有关详细信息,请参阅插件文档。

更多信息:

我猜想您可能没有使用spring-boot maven插件,或者没有使用spring-boot parent POM。如果不是这个问题,那么您需要发布更多信息。


谢谢您的回复,结果发现我在项目结构上犯了一个愚蠢的错误。现在已经解决了。 - user4342033

1
我已经解决了问题,应用程序现在可以作为一个独立的jar文件运行。
事实证明,项目文件夹结构是错误的 - 大部分应用程序都无法访问!

1
请详细说明问题的实际原因以及您是如何解决的,因为您的问题所获得的浏览量表明很多人可能会遇到类似的问题。 - Jordan Mackie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接