【发布时间】:2017-09-30 07:06:17
【问题描述】:
我试图了解 Spring Boot 的包装成“胖”罐子。据我所知,“胖”jar 有自己的特殊类,它们在 jar 运行时加载主类,并相应地设置类路径。
我无法理解的是,为什么当我使用 Eclipse 将所有依赖项提取到 jar 中的文件夹结构中时,jar 不再作为正确的 Spring Boot 应用程序运行。
要重复我在这里所做的,只需使用一个简单的 Spring Boot 应用程序并从 Eclipse 中选择以下内容:
导出 --> Runnable Jar --> 选择主类 --> 将所需库提取到 jar 中。
只需像运行任何 jar 一样从命令行运行 jar。 Spring Boot 最初启动但失败并显示以下消息:
2017-05-02 22:06:40.484 警告 3468 --- [主要] ationConfigEmbeddedWebA applicationContext:遇到异常 在上下文初始化期间 - 取消 ling 刷新尝试: org.springframework.beans.factory.BeanDefinitionStoreException: 无法处理配置类的导入候选 [com.main.Test Main];嵌套异常是 java.lang.IllegalArgumentException: 没有自动配置类 在 META-INF/spring.factories 中找到。如果您使用的是自定义包装 ging,请确保该文件是正确的。
我可以以某种方式编辑 spring.factories 文件以包含我的类吗?
我只是想了解 Spring 是如何通过其 Maven 插件实际打包文件的。
【问题讨论】:
标签: spring spring-boot executable-jar