【问题标题】:Start Spring Boot App from other application从其他应用程序启动 Spring Boot App
【发布时间】:2018-01-13 09:38:23
【问题描述】:

我有一个 java 应用程序和一个 Spring Boot 应用程序。我想MySpringBootApp.run()MySpringBootApp.hereYouHaveSomeInfo(),所以我想调用 Spring Boot App 的方法,但是 Spring Boot 会处理我的类并重命名它,所以我在另一个 App 中得到了 ClassNotFoundException。

感谢您的帮助!

【问题讨论】:

  • 你确实删除了答案钩,请问你一个原因吗?
  • 因为我想要的是从另一个应用程序中将我的 Spring Boot 应用程序作为插件加载(例如手动调用 main 方法),但这对于下面描述的方法是不可能的,因为自定义包装方法是必需的,我不需要 .original Jar 文件作为依赖项。
  • 你早该告诉的。你的问题还有效吗?

标签: java spring spring-boot classnotfoundexception


【解决方案1】:

如果我理解正确,您正在构建 Spring Boot 应用程序的可执行版本。

此 jar 文件不能用作依赖项。

您需要构建没有依赖项的经典 jar 文件并将其添加到应用程序的依赖项列表中。

我想你是用maven 构建的。 target 文件夹将包含两个文件:

  • yourapp-<version>.jar
  • yourapp-<version>.jar.original 明显更小。

.jar 文件不适合作为依赖项包含。您需要 .original 文件。我建议,如果您需要两者,您设置一个项目,将 .original 文件创建为常规 .jar 目标,而不使用 spring-boot 插件。然后添加另一个项目,使用 spring-boot 插件,它需要“简单” .jar 文件作为依赖项,并启用了 spring-boot 插件。

您的第二个应用程序还将列出“简单”jar 文件作为依赖项,胖 jar 可以照常交付。

【讨论】:

    猜你喜欢
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 2020-08-04
    相关资源
    最近更新 更多