如何使用多个主类运行 Spring Boot 项目
Posted
技术标签:
【中文标题】如何使用多个主类运行 Spring Boot 项目【英文标题】:How to run spring boot project with multiple main classes 【发布时间】:2021-03-06 03:50:00 【问题描述】:我有一个包含 3 个主要类的 Spring Boot 项目
com.abc.test --> Application
com.abc.test.pqr --> ApplicationMain2
com.abc.test.xyz --> ApplicationMain3
现在 spring boot 项目无法构建,所以我将 POM 条目作为
<properties>
<start-class>com.abc.test.Application</start-class>
</properties>
从 Eclipse 我能够成功运行所有 3 Main 并创建一个 jar。 但是每当我尝试使用命令运行 jar 时,它正在运行的 Application 类。
java -jar -Dloader.main=com.abc.test.pqr.ApplicationMain2 test-1.0.jar
使用以下命令给出类未找到的错误
java -cp test-1.0.jar -Dloader.main=com.abc.test.pqr.ApplicationMain2
java -cp -Dloader.main=com.abc.test.pqr.ApplicationMain2 test-1.0.jar com.abc.test.pqr.ApplicationMain2
java -classpath test-1.0.jar com.abc.test.pqr.ApplicationMain2
【问题讨论】:
From eclipse I am able to run all 3 Main successfully and create a jar
并且都在同一个端口上正常运行?
从 Eclipse 中,您是将所有 3 个主要类作为 Java 应用程序还是作为 Spring Boot 应用程序运行?
请参阅:dzone.com/articles/….
@Ashish 谢谢先生。我忘了添加属性启动器命令。
@Qwer Izuken 这是一个非常好的观点。但我没有同时运行所有三个进程。它只是我打包在 1 个 jar 中的 3 个项目,我一次只使用 1 个。无论如何,谢谢您的回复。
【参考方案1】:
非常感谢 Ashish 我以前运行的命令是
java -cp test-1.0.jar -Dloader.main=com.abc.test.pqr.ApplicationMain2
问题是我们不包括 PropertiesLauncher。 除了类,我们还需要明确地给出属性启动器的路径。所以正确的命令如下
java -cp test-1.0.jar -Dloader.main=com.abc.test.pqr.ApplicationMain2 org.springframework.boot.loader.PropertiesLauncher
【讨论】:
以上是关于如何使用多个主类运行 Spring Boot 项目的主要内容,如果未能解决你的问题,请参考以下文章